以写入模式打开文件



我有一个名为.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 "$varn$var1n$var2" > a.txt

相关内容

  • 没有找到相关文章

最新更新