В чем разница между использованием команды «echo» и редактированием с помощью «vi» при внесении изменений в файл .bashrc?
Я закончил установку программы, и некоторые веб-сайты советуют мне использовать команду echo для экспорта переменной среды в файл .bashrc, в то время как другие советуют использовать vi .bashrc для непосредственного редактирования файла. Мне было интересно, какие различия между методами заставят меня использовать один против другого в любом конкретном случае? Я не уверен, что использование echo вставляет временную переменную, а vi может сделать ее постоянной?
2 ответа
является редактором. Он делает то, что обычно делают редакторы: вы можете изменять файл в случайных местах, перемещая для этого курсор.
Изменение файла всегда приводит к добавлению текста в конец файла; или перезаписать его полностью. Изменения так же постоянны, как и при использовании редактора, такого как
vi
.
echo "foo" >.bashrc
Это заменяет весь этот файл всего одной строкой «foo». Вы, вероятно, не хотите этого.
echo "foo" >>.bashrc
Это добавляет новую строку «foo» в конец .bashrc. Хотя иногда это может быть полезно, обычно вам нужен больший контроль над тем, куда идут ваши изменения, поэтому лучше используйте редактор.
И все это волшебство делает оболочка : она перенаправляет вывод команды в файл, перезаписывая в процессе все старое содержимое этого файла; похож, но он не перезаписывает старый контент, а только добавляет новый контент в конец.
Учебники используют
echo
как правило, потому что это очень простая команда, которая просто — как вы уже догадались — повторяет свои аргументы. Но это перенаправление ввода-вывода с
>
или же
>>
работает с любой командой, которая записывает вывод в стандартный канал вывода (также известный как stdio ).
Только для некоторых случаевecho xxx >> file
следует использовать для добавления строки, в противном случае это может привести к сбою другого считывателя (например, при использованииvim
). например при использованииkafka-connect
загрузить файл в тему.