循环输出到文件

时间:2013-09-12 04:11:08

标签: linux bash shell

我试图将一个for循环输出到文件到文件10次。这就是我所拥有的:

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

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

4 个答案:

答案 0 :(得分:9)

您正在使用>重定向,它会清除文件的现有内容,并将其替换为循环内的命令输出。因此,这会将之前的内容清除10次,每次更换一行。

如果没有>>/dev/tty,它会显示在您的显示屏上,>无法清除任何内容,因此您会看到所有十个副本。

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

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

for ... do cmd; done >file

运行整个循环并重定向输出,仅创建(或使用>>,打开追加)。

答案 1 :(得分:6)

你只是用“&gt;”重定向回声,所以它会被覆盖。你需要的是使用“&gt;&gt;”追加运营商。执行以下操作:

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

答案 2 :(得分:0)

以下内容将解决您的问题:

由于命令const newSurvey = new surveyResponseModel({ surveyId, surveyData, surveyBy, patientId, result }) let savedSurvey = await newSurvey.save(); 中已经提到的原因,您应该尝试使用createdOn: { type: Date, default: Date.now() }运算符

使用选项'\ n'–带有退格解释器'-e'的新行 使用它的新行。

link

这样做:

>>

cat命令:

echo -e

输出:

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

或者,您可以尝试:

cat testforloop.txt

输出:

Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World

答案 3 :(得分:-1)

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

for((i = 1; i <= 10; i ++));回声“Hello World”&gt; testforloop(i).txt;完成

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