Я не совсем уверен, почему эхо не работает согласно вашему вопросу, но в целом вместо этого я бы использовал printf
. Это гораздо более предсказуемо в его выводе.
printf '%s\t%s\t%s\n' '10.0.10.0' 'server.bananas.com' 'server'
%s\t%s\t%s\n
:в этой части объясняется, каким будет формат вывода, т. е. строка, табуляция, строка, табуляция, строка, новая строка. printf
. Кроме того, я не уверен, знаете ли вы, но вместо конструкции sudo sh -c
вы могли бы использовать sudo tee
. то есть
printf … | sudo tee -a /etc/hosts
Я нахожу это более удобным, особенно когда не нужно экранировать символы внутри внешнего '
.