В чем разница между использованием команды «echo» и редактированием с помощью «vi» при внесении изменений в файл .bashrc?

Я завершил установку программы, и на некоторых веб-сайтах мне предлагают использовать команду echo для экспорта переменной окружения в файл .bashrc, в то время как другие предлагают использовать vi .bashrc для непосредственного редактирования файла. Мне было интересно, какие различия между методами заставят меня использовать один по сравнению с другим в каждом конкретном случае? Я не уверен, что использование echo вставляет временную переменную, а vi может сделать ее постоянной?

1
задан 19 June 2021 в 01:07

1 ответ

vi - это редактор. Он делает то, что обычно делают редакторы: Вы можете изменять файл в произвольных местах, перемещая для этого курсор.

Изменение файла с помощью echo всегда добавляет текст в конец файла; или полностью перезаписывает его. Изменения так же постоянны, как и при использовании редактора типа vi.

echo "foo" >.bashrc

Это заменяет весь файл одной строкой "foo". Вероятно, вам это не нужно.

echo "foo" >>.bashrc

Это добавляет новую строку "foo" в конец файла .bashrc. Хотя иногда это может быть полезно, обычно вам нужно больше контроля над тем, куда попадают ваши изменения, поэтому лучше использовать редактор.

И именно shell делает всю эту магию: > перенаправляет вывод команды в файл, перезаписывая при этом любое старое содержимое файла; >> аналогичен, но он не перезаписывает старое содержимое, а только добавляет новое в конец.

В учебниках обычно используется echo, потому что это очень простая команда, которая просто - вы, наверное, догадались - передает свои аргументы. Но это перенаправление ввода/вывода с помощью > или >> работает с любой командой, которая записывает вывод в стандартный канал вывода (он же stdio).

3
ответ дан 28 July 2021 в 11:27

Другие вопросы по тегам:

Похожие вопросы: