我如何反转我为一个定义的数组执行for循环的顺序
要迭代数组,我这样做:
$ export MYARRAY=("one" "two" "three" "four") $ for i in ${MYARRAY[@]}; do echo $i;done one two three four
有一个函数,我可以颠倒数组的顺序吗?
你可以使用C风格for循环:
for (( idx=${#MYARRAY[@]}-1 ; idx>=0 ; idx-- )) ; do echo "${MYARRAY[idx]}" done
对于具有“holes”的数组,元素数量$ {#arr [@]}不对应于最后一个元素的索引。您可以创建另一个索引数组,并以相同的方式向后走:
#! /bin/bash arr[2]=a arr[7]=b echo ${#arr[@]} # only 2!! indices=( ${!arr[@]} ) for ((i=${#indices[@]} - 1; i >= 0; i--)) ; do echo "${arr[indices[i]]}" done