Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在unix中查找数组中的最后一个元素?_Arrays_Unix_If Statement_Ksh - Fatal编程技术网

Arrays 如何在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

如何在unix中找到数组中的最后一个元素?我需要找到数组中的最后一个元素来执行
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]}