数组索引是0
-based inbash
和1
-based in zsh
(除非KSH_ARRAYS
设置了选项)。
例如:要访问数组的第一个元素,是否有比以下更好的方法:
if [ -n $BASH_VERSION ]; then
echo ${array[0]}
else
echo ${array[1]}
fi
要始终获得一致的行为,请使用:
${array[@]:offset:length}
对于同时适用于bash
和 的代码zsh
,您需要使用offset:length
语法而不是[subscript]
语法。
即使对于zsh
-only 代码,您仍然需要执行此操作(或使用emulate -LR zsh
),因为zsh
的数组下标基础由选项KSH_ARRAYS
确定。
例如,要引用数组中的第一个元素:
${array[@]:0:1}
这里,array[@]
是所有元素,0
是偏移量(总是从 0 开始),1
是所需元素的数量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句