Eu queria adicionar ao meu arquivo hosts facilmente usando um comando de uma linha, mas recebo um resultado inesperado.
$ sudo sh -c 'echo -e "10.0.10.0\tserver.bananas.com\tserver" >> /etc/hosts'
$ cat /etc/hosts
-e 10.0.10.0 server.bananas.com server
Estou usando a opção -e no eco para habilitar o uso de escapes de barra invertida para as guias, mas o -e está sendo incluído na saída redirecionada.
Como posso evitar isso?
Não sei exatamente por que o echo está falhando de acordo com sua pergunta, mas, em geral, eu usaria
printf
. É muito mais previsível em sua saída.Explicação
%s\t%s\t%s\n
: esta parte explica qual será o formato de saída, ou seja, uma string, uma tabulação, uma string, uma tabulação, uma string, uma nova linha.printf
.Gravando em arquivos de propriedade do root
Além disso, não tenho certeza se você está ciente, mas em vez de usar a
sudo sh -c
construção, você pode usarsudo tee
. ou sejaAcho isso mais conveniente, especialmente quando evita ter que escapar caracteres dentro do arquivo
'
.