2017-02-13 38 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

相關問題