我想知道如何在 shell 脚本中回显数组的最后一个值。例如,我有以下数组”
$i=("1","2","3")
我想在最后一个位置设置一个条件,这意味着当它到达位置 3 时它会停止或说“hello world”。
我怎样才能做到这一点?
编辑 shell 是 shell 脚本,如 #!/bin/sh
答案1
假设 shell 是 Bash:
i=("a" "b" "c"); echo "${i[$((${#i[@]}-1))]}"
将输出c
。构造${#i[@]}
返回数组中元素的数量i
,因此这$((${#i[@]}-1))
是最后一个元素的索引。请参阅man bash
有关详细信息,它包含一个名为数组。
echo "${i[-1]}"
也回显c
,因为负索引是从数组末尾开始计算的。
括号内的数组元素以空格分隔,而不是逗号。
答案2
你的数组语法是错误的:你想要i=(1 2 3)
最后一个元素是
$ echo "${i[-1]}"
3
然而,这闻起来像XY 问题。
你真的想迭代除最后一个元素之外的所有元素吗?那么请执行以下操作:
len=${#i[@]}
for elem in "${i[@]:0:len-1}"; do
echo "$elem"
done
echo "hello world"
否则,您的实际要求是什么?