BASH shell脚本可以快速创建和填充新的测试文件

时间:2010-11-24 05:17:19

标签: bash scripting for-loop

# for i in {1..5} do echo "New File $i" > file$i done
-bash: syntax error near unexpected token `>'

我尝试了上面的单行脚本,该脚本因上述错误而失败。我正在尝试自动化输入过程:

echo "New File" > file1  
echo "New File" > file2  
echo "New File" > file3  
echo "New File" > file4  
echo "New File" > file5  

我正在尝试这样做而不创建一个脚本文件,如下面的工作:

#!/usr/bin/env bash                                                                                                                                                                                       
for i in {1..5} 
  do  
    echo "New File $i" > file$i 
  done

这个脚本有效但我希望能够在命令行的一行上做这样的事情。

我理解该问题与文件的重定向>有关。我试图逃避>重定向一些其他的东西,并谷歌搜索,但我没有想出一些有用的东西。

我希望能够在cli上单行执行此操作的原因是因为我希望能够不断更改文件的数量和内容以进行测试,我更愿意只在命令上执行此操作而不是编辑脚本文件。

更新1

我按照建议尝试了命令分隔符,并得到以下错误:

# for i in {1..5} do ; echo "New File $i" > file$i ; done
-bash: syntax error near unexpected token `echo'

更新2

我在Update 1中错误地执行了上面的命令分隔符。 完成命令分隔符,因为它们在下面的答案中就像一个魅力。

2 个答案:

答案 0 :(得分:5)

do之前 done之前,您需要分号或新行。 <{1}}之后你不需要一个,虽然没有伤害。

单行

do

多行

for i in {1..5}; do echo "New File $i" > file$i; done
               ^                               ^ 

答案 1 :(得分:1)

以下对我有用,您需要对更新1执行的操作是在fordo之间插入命令分隔符:

for i in {1..5} ; do echo "New File $i" >file$i ; done