# 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上单行执行此操作的原因是因为我希望能够不断更改文件的数量和内容以进行测试,我更愿意只在命令上执行此操作而不是编辑脚本文件。
我按照建议尝试了命令分隔符,并得到以下错误:
# for i in {1..5} do ; echo "New File $i" > file$i ; done
-bash: syntax error near unexpected token `echo'
我在Update 1中错误地执行了上面的命令分隔符。 完成命令分隔符,因为它们在下面的答案中就像一个魅力。
答案 0 :(得分:5)
在do
和之前 done
之前,您需要分号或新行。 <{1}}之后你不需要一个,虽然没有伤害。
do
for i in {1..5}; do echo "New File $i" > file$i; done
^ ^
答案 1 :(得分:1)
以下对我有用,您需要对更新1执行的操作是在for
和do
之间插入命令分隔符:
for i in {1..5} ; do echo "New File $i" >file$i ; done