我想使用一行命令轻松添加到我的主机文件中,但我得到了意想不到的结果。
$ 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
我在 echo 上使用 -e 开关来启用制表符的反斜杠转义,但 -e 包含在重定向输出中。
我怎样才能避免这种情况?
我想使用一行命令轻松添加到我的主机文件中,但我得到了意想不到的结果。
$ 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
我在 echo 上使用 -e 开关来启用制表符的反斜杠转义,但 -e 包含在重定向输出中。
我怎样才能避免这种情况?
根据您的问题,我不确定为什么 echo 会失败,但总的来说,我会
printf
改用它。它的输出更具可预测性。解释
%s\t%s\t%s\n
:这部分解释了输出格式是什么,即字符串、制表符、字符串、制表符、字符串、换行符。printf
。写入根拥有的文件
另外,我不确定您是否知道,但
sudo sh -c
您可以使用而不是使用该构造sudo tee
。IE我发现这更方便,尤其是当它避免在外部转义字符时
'
。