输出循环到文件

我正在尝试一个for循环输出到一个文件10次的文件。 这是我有什么:

for ((i=1;i<=10;i++)) ; do echo "Hello World" > testforloop.txt ; done 

这将“Hello World”输出一次到文件“testforloop.txt”。 如果我不输出到文件,它会在屏幕上打印Hello World 10次。 谢谢你的帮助。

您正在使用>重定向,在循环内部清除文件的现有内容并将其替换为命令的输出。 所以这次擦掉了以前的内容10次,每次换一行。

如果没有>>/dev/tty ,它会进入你的显示器,在那里>不能清除任何东西,所以你看到所有的十个副本。

您可以使用>> ,这将仍然打开文件十次,但会追加(不擦除以前的内容)每次。 这不是非常有效,它保留了以前运行的数据(可能或不可能是你想要的)。

或者,您可以重定向整个循环一次:

 for ... do cmd; done >file 

它运行整个循环,输出重定向,创建(或者,与>> ,打开追加)只有一次。

你只是用“>”重定向回声,所以它会覆盖。 你需要用“>>”操作符来追加。 请执行下列操作:

  for ((i=1;i<=10;i++)) ; do echo "Hello World" >> testforloop.txt ; done 

你重写了十次testforloop.txt。 如果你做到了

for((i = 1; i <= 10; i ++)); 做回声“Hello World”> testforloop(i).txt; DONE

其中我是for循环的int。 我不确定你正在编程的语言。