我有一个名为a.txt的文件。像
这样的值1
2
3
...
我想覆盖此文件,但
echo "$var" >> a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
...
只是追加。使用>也没用。如何使用>>进行覆盖? shell脚本中的运算符?
答案 0 :(得分:4)
您可能希望>
用于第一次重定向,>>
用于后续重定向:
echo "$var" > a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
答案 1 :(得分:4)
>
会截断文件,如果文件存在,则会执行您最初提出的问题。
>>
会附加到文件中。
如果要覆盖文件内容(不截断文件),请使用1<>
e.g:
[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
答案 2 :(得分:2)
以何种方式使用&gt;没有用?通过覆盖文件明确地做你想要的,所以使用&gt;对于第一个然后&gt;&gt;追加未来的价值观。
答案 3 :(得分:2)
echo "$var
$var1
$var2" > a.txt
或
echo -e "$var\n$var1\n$var2" > a.txt