我需要正确的语法,使用一个命令将file.jpg复制100次,以便获得 100个文件名为file001.jpg,file002.jpg,...,file100.jpg。 我正在使用它但不适合我 任何提示
#!/bin/bash
for x in `seq 1 100`; do
if [[ x -lt 10 ]]; then cp file.jpg file-00$x.jpg;
elif [[ x -lt 100 ]]; then cp file.jpg file-0$x.jpg;
else cp file.jpg file-$x.jpg;
fi
done
答案 0 :(得分:15)
使用bash brace expansion
for n in {001..100}; do
cp file.jpg file-$n.jpg
done
答案 1 :(得分:3)
在您的两个if
条件中,您错过$
上的$x
,因此您最终会比较字符串x
,而不是数字。
正如Basile Starynkevitch指出的那样,printf
实用程序可能是一个更好的方法:$(printf "file-%03d.jpg" $x)
在一行中为您提供正确的格式化字符串。