反转“for in * do”循环的结果

反转“for in * do”循环的结果

可能的重复:
如何反转 for 循环?

有没有简单的方法来反转 for in 循环?对于脚本,我想以相反的顺序处理文件。

所以而不是:

for file in *.jpg;
  do echo $file;
done

结果

001.jpg
002.jpg
003.jpg
...
150.jpg

我想要结果

150.jpg
149.jpg
148.jpg
...
001.jpg

答案1

您可以使用

array=(*.jpg)
for ((i = ${#array[@]} - 1;i >= 0;i--)); do
    echo ${array[i]}
done

答案2

在给定的示例中,您可以使用

for num in `seq -w 150 -1 1`
  do echo $num.jpg
done

当然,这并不完全等效,因为它并没有真正反转通配符,而是在外部生成序列。

相关内容