我试图将一个for循环输出到文件到文件10次。这就是我所拥有的:
for ((i=1;i<=10;i++)) ; do echo "Hello World" > testforloop.txt ; done
这将“Hello World”输出一次到文件“testforloop.txt”。如果我不输出到文件,它会将Hello World打印到屏幕10次。谢谢你的帮助。
答案 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'的新行 使用它的新行。
这样做:
>>
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。我不确定你编程的语言。