![反转“for in * do”循环的结果](https://linux22.com/image/20655/%E5%8F%8D%E8%BD%AC%E2%80%9Cfor%20in%20*%20do%E2%80%9D%E5%BE%AA%E7%8E%AF%E7%9A%84%E7%BB%93%E6%9E%9C.png)
可能的重复:
如何反转 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
当然,这并不完全等效,因为它并没有真正反转通配符,而是在外部生成序列。