我有一个包含文件file1.png
,file2.png
,...,file5.png
的文件夹。我想将它们复制到新文件夹中,并将其重命名为file6.png
到file10.png
。我使用的bash脚本是:
for i in `seq 1 5`;
k=$((i+5));
do cp src/file$i.png dst/file$k.png;
done;
但是,k=$((i+5))
行总是说syntax error
。有什么想法吗?
答案 0 :(得分:4)
在脚本下面完成工作:
for i in {1..5}
do # You need to put 'do' just after the for statement
cp src/file"$i".png dst/file"$((i+5))".png
done
备注强>
请参阅[ brace expansion ]了解有关{START..END}
的更多信息。
注意$((i+5))
会将结果返回到调用它的位置,因此您可以避免使用中间变量k
。
答案 1 :(得分:1)
你必须这样做 -
for i in `seq 1 5`
do
k=$(($i+5))
cp src/file"$i".png dst/file"$k".png
done
答案 2 :(得分:1)
您忘记了do
之后的for
:
for i in `seq 1 5`; do k=$((i+5)); echo $k; done;
#output: ---^---
6
7
8
9
10