如何为范围内的每个数字运行命令

She*_*acu 8 shell

我想做类似的事情

specmd file5.awe
specmd file6.awe
specmd file7.awe
specmd file8.awe
specmd file9.awe
specmd file10.awe
specmd file11.awe
specmd file12.awe
Run Code Online (Sandbox Code Playgroud)

有没有好的方法可以做到这一点?我能想到的最好的方法是

ruby -e "10.upto(15){|i| puts i}" | xargs -I {} specmd file{}.awe
Run Code Online (Sandbox Code Playgroud)

这显然不是一个很好的方法,因为它取决于 ruby​​ 并且在这种情况下感觉 ruby​​ 应该是不必要的。

注意:有更多我想要的文件(例如: file4.awe, file13.awe),所以任何通配符(可能?)都不会做我想要的。

Rui*_*iro 13

在 bash 中,您可以使用内置命令创建循环以遍历范围:

for i in {5..12}
do 
    specmd file${i}.awe
done
Run Code Online (Sandbox Code Playgroud)

对于其他类似情况,还有更多选择,我会在这里留下一个链接。

http://www.cyberciti.biz/faq/bash-for-loop/


小智 8

我知道这是一个老问题,但我无法抗拒。

不需要 for 循环,不需要 while 循环,只需要纯命令行 bash:

echo file{5..12}.awe | xargs -n1 specmd
Run Code Online (Sandbox Code Playgroud)