我有一个名为a.txt的文件。与像以写入模式打开文件
1
2
3
...
值我想改写这个文件,但
echo "$var" >> a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
...
只是追加。使用>也没有用。如何在shell脚本中使用>>操作符进行覆盖?
我有一个名为a.txt的文件。与像以写入模式打开文件
1
2
3
...
值我想改写这个文件,但
echo "$var" >> a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
...
只是追加。使用>也没有用。如何在shell脚本中使用>>操作符进行覆盖?
您可能需要使用>
第一个重定向和>>
后续重定向:
echo "$var" > a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
以什么方式使用>没用?通过覆盖文件明确做到了你想要的,所以使用>作为第一个,然后使用>>来附加未来的值。
>
截断该文件,如果它存在,并且会做什么您最初问。
>>
如果存在,则附加到该文件。
如果你想覆盖文件的内容(不截断它),使用1<>
如:
[23:58:27 0 ~/tmp] $ echo foobar >a
[23:58:28 0 ~/tmp] $ cat a
foobar
[23:58:50 0 ~/tmp] $ echo -n bar 1<>a
[23:58:53 0 ~/tmp] $ cat a
barbar
echo "$var
$var1
$var2" > a.txt
或
echo -e "$var\n$var1\n$var2" > a.txt
你能更具体关于为什么“使用>无用”?它是否覆盖,正如你所要求的? – 2011-04-23 21:52:26
echo“$ var”> a.txt echo“$ var1”> a.txt echo“$ var2”> a.txt当我使用这个文件时只有$ var。 – thetux4 2011-04-23 21:52:55
echo“$ var”> a.txt应该做的工作尝试 – Ibu 2011-04-23 21:56:17