Открытие файла в режиме записи - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть файл с именем a.txt. со значениями вроде

1
2
3
...

Я хочу перезаписать этот файл, но

echo "$var" >> a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
...

просто добавляет. Использование> также не полезно. Как я могу переписать с помощью оператора >> в сценарии оболочки?

Ответы [ 4 ]

4 голосов
/ 24 апреля 2011

Вы можете использовать > для первого перенаправления и >> для последующих перенаправлений:

echo "$var" > a.txt
echo "$var1" >> a.txt
echo "$var2" >> a.txt
4 голосов
/ 24 апреля 2011

> усекает файл, если он существует, и будет делать то, что вы первоначально просили.

>> добавляет к файлу, если он существует.

Если вы хотите перезаписатьсодержимое файла (не обрезать его), используйте 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
2 голосов
/ 24 апреля 2011
echo "$var
$var1
$var2" > a.txt

или

echo -e "$var\n$var1\n$var2" > a.txt
2 голосов
/ 24 апреля 2011

Чем использование> не полезно?Это явно делает то, что вы хотите, переписав файл, поэтому используйте> для первого, а затем >> для добавления будущих значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...