使用脚本在bash中创建文件的多个副本

时间:2013-10-25 19:41:56

标签: linux bash shell

我开始学习如何在Linux中使用bash shell命令和脚本。

我想创建一个脚本来获取源文件,并创建一定数量的命名副本。

例如,我将源代码作为testFile,我选择了15个副本,因此它在同一位置创建了testFile1,2,3 ... 14,15。

为了尝试实现这一点,我尝试了以下命令:

for LABEL in {$X..$Y}; do cp $INPUT $INPUT$LABEL; done

但是,不是创建从X到Y的文件,而是只添加一个文件(例如){1..5}而不是文件1,2,3,4和5

如何更改它以便正确使用变量作为循环的数字?

2 个答案:

答案 0 :(得分:6)

brace expansion机制有点受限;它不适用于变量,只适用于文字。

对于你想要的,你可能有seq命令,可以写:

INPUT=testFile
for num in $(seq 1 15)
do
    cp "$INPUT" "$INPUT$num"
done

答案 1 :(得分:2)

使用 C风格的循环

$ x=0 y=15
$ for ((i=x; i<=y; i++)); do cp "$INPUT" "$INPUT$i"; done