在bash脚本中添加数字

时间:2016-09-01 07:45:22

标签: bash

我有一个包含文件file1.pngfile2.png,...,file5.png的文件夹。我想将它们复制到新文件夹中,并将其重命名为file6.pngfile10.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。有什么想法吗?

3 个答案:

答案 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