Shell 如何使用不同的参数重复可执行文件?

Shell 如何使用不同的参数重复可执行文件?,shell,executable,Shell,Executable,我有一个可执行文件来分析图像。我在shell中写入/analysis img_001.jpg,它返回1个数字。 我在寻找一个解决方案来分析我的999图像(img_001.jpg到img_999.jpg),使用一个脚本(我真的不希望手动进行),我需要一个提示 是否可以使用类似于/script.sh的程序返回999号 诚恳地说如果您使用的是bash,您只需使用大括号扩展即可: for i in {1..999}; do printf "img_%03d.jpg\n" $i done 这将打

我有一个可执行文件来分析图像。我在shell中写入
/analysis img_001.jpg
,它返回1个数字。 我在寻找一个解决方案来分析我的999图像(img_001.jpg到img_999.jpg),使用一个脚本(我真的不希望手动进行),我需要一个提示

是否可以使用类似于
/script.sh
的程序返回999号


诚恳地说

如果您使用的是
bash
,您只需使用大括号扩展即可:

for i in {1..999}; do
    printf "img_%03d.jpg\n" $i
done
这将打印出:

img_001.jpg
img_002.jpg
...
img_998.jpg
img_999.jpg
要使用这些参数运行脚本,可以使用:

for i in {1..999}; do
    ./analyse $(printf "img_%03d.jpg" $i)
done
您还可以使用
seq
替换大括号扩展:

for i in $(seq 1 999); do

在bash版本4或更高版本中,{000..999}直接扩展到零填充数字,因此不需要任何printf