file$i done -bash: syntax error near unexpected token `>' -6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:22:24 24 4
gpt4 key购买 nike

# 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 中错误地使用了上面的命令分隔符。完成命令分隔符,因为它们在下面的答案中就像一个魅力。

最佳答案

dodone 之前,您需要分号或换行。在 do 之后您不需要一个,尽管它没有坏处。

单行

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

多行

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

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

关于用于快速创建和填充新测试文件的 BASH shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com