如何在fish shell中获取数组大小?非首元素操作方案咨询
在fish shell中处理数组:获取大小与跳过首元素操作
嘿,我来帮你搞定这个fish shell数组的问题~ 直接针对你的需求分两部分说明:
1. 如何获取fish数组的大小
在fish里,获取数组长度的语法特别直观,用$#数组名就能拿到。举个实际例子:
# 先定义一个测试数组 set my_drinks coffee tea juice soda # 输出数组大小 echo "数组一共有$#my_drinks个元素" # 运行后会输出“数组一共有4个元素”
2. 更高效的替代方案:直接跳过首元素操作
其实你完全不需要先获取数组大小来实现“从第2个元素到末尾循环”的需求——fish自带数组切片功能,能直接精准定位你要的元素范围,比先算长度再循环要简洁得多。
比如要遍历除第一个元素外的所有元素,直接用$数组名[2..]就能提取这个子数组,然后直接循环处理:
set my_drinks coffee tea juice soda # 遍历从第2个元素开始的所有元素 for drink in $my_drinks[2..] echo "正在处理饮品: $drink" end
运行这段代码会输出:
正在处理饮品: tea 正在处理饮品: juice 正在处理饮品: soda
如果之后有更灵活的切片需求(比如取第2个到倒数第2个元素),fish也支持类似$my_drinks[2..-2]的写法,但针对你当前的需求,[2..]就完全够用啦。
内容的提问来源于stack exchange,提问作者Adham Zahran
相关产品推荐
相关产品推荐

