Lin*_*uel 5 arrays indexing bash shell zsh
我们都知道 Bash 中的数组从 0 开始索引,而 zsh 中的数组从 1 开始索引。
如果我无法确保运行环境是 bash、zsh 或其他环境,脚本如何知道它应该使用 0 或 1?
预期代码示例:
#!/bin/sh
detect_array_start_index(){
# ... how?
echo 1
}
ARR=(ele1 ele2)
startIndex=$(detect_array_start_index) # 0 or 1
for (( i=${startIndex}; i < ${#ARR[@]} + $startIndex; i++ )); do
echo "$i is ${ARR[$i]}"
done
Run Code Online (Sandbox Code Playgroud)
我有一个想法是找到固定数组中第一个值的索引,我得到了这个:Get the index of a value in a Bash array,但接受的答案使用 bash 变量间接语法${!VAR[@]}
,这在 zsh 中无效。
检查二元素数组的索引 1 元素:
detect_array_start_index() {
local x=(1 0)
echo ${x[1]}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
864 次 |
最近记录: |