Arrays 如何在unix中查找数组中的最后一个元素?
如何在unix中找到数组中的最后一个元素?我需要找到数组中的最后一个元素来执行Arrays 如何在unix中查找数组中的最后一个元素?,arrays,unix,if-statement,ksh,Arrays,Unix,If Statement,Ksh,如何在unix中找到数组中的最后一个元素?我需要找到数组中的最后一个元素来执行if语句: if [ #last_array ]; then #Do something fi 我怎么做?我可以在if中只输入一个参数吗?我只想让最后一个数组做点什么我想这样的事情可以成功。我知道这不是很好,但不能用其他好的方式思考: #!/bin/bash a=("hello" "bye" "another" "word") i=0 num_words=${#a[@]} ec
if语句
:
if [ #last_array ];
then
#Do something
fi
我怎么做?我可以在if中只输入一个参数吗?我只想让最后一个数组做点什么我想这样的事情可以成功。我知道这不是很好,但不能用其他好的方式思考:
#!/bin/bash
a=("hello" "bye" "another" "word")
i=0
num_words=${#a[@]}
echo "there are $num_words words"
for word in "${a[@]}"
do
let i=i+1
echo $i $word
if [ $i -eq $num_words ]; then
echo "last word!"
fi
done
试验
我想那样的事情可以成功。我知道这不是很好,但不能用其他好的方式思考:
#!/bin/bash
a=("hello" "bye" "another" "word")
i=0
num_words=${#a[@]}
echo "there are $num_words words"
for word in "${a[@]}"
do
let i=i+1
echo $i $word
if [ $i -eq $num_words ]; then
echo "last word!"
fi
done
试验
最后一个数组是什么意思?你能举一些例子吗?我发现了这个:
echo${ARR1[@]:(-1)}
。将打印数组中的最后一个元素。。现在我想做一些类似“if is last element do something”(如果是最后一个元素做某事)的事情,可能吗?你是说数组的最后一个元素
,而不是最后一个数组
,听起来很奇怪。是的,对不起,现在编辑请求。echo${ARR1[@]:(-1)}
似乎不起作用:(你说最后一个数组是什么意思?你能举一些例子吗?我发现:echo${ARR1[@]:(-1)}
。将打印数组中的最后一个元素。现在我想做一些类似“if is last element do something”的事情可能吗?你的意思是数组的最后一个元素
,而不是最后一个数组
,听起来很奇怪。是的,对不起,现在编辑请求。echo${ARR1[@]:(-1)}
似乎不起作用:(
$ set -A arr 1 2 3 4 5
$ let LAST_ELEMENT=${#arr[*]}-1
$ echo ${arr[$LAST_ELEMENT]}