2017-02-13 108 views
1

我有一个bash脚本工作,我有一些\n的字符串: n没有在Linux文件

interfaces="auto lo\niface lo inet loopback\n\n..." 

然后我试着写入接口,这个文件中像这样:

sudo bash -c "echo -e $interfaces > /etc/network/interfaces" 

我用-e显示\n的,但如果我打开文件时,它并没有显示正确的,但如果我只是将其输出到终端它的工作原理:

auto loniface lo inet loopbacknn...

+0

看看http://stackoverflow.com/questions/9139401/trying-to-embed-newline-in-a-variable-in-bash – Dmitry

+2

@ KenY-N这将无法正常工作时,字符串被代入'bash -c'参数。 'bash'会将它看作一个字面换行符,它是一个命令分隔符。 – Barmar

+0

@ KenY-N我的意思是,如果我'回声'到终端它的工作,但不是在文件中。我现在会尝试@Barmar的解决方案。 – WasteD

回答

5

在变量周围加上引号。带引号的字符串的

sudo bash -c "echo -e '$interfaces' > /etc/network/interfaces" 

外,\n获取与n取代。

+0

@joepd不,这是不正确的。 – Barmar

+0

为我工作谢谢! – WasteD

相关问题