2015-11-13 33 views
0

經過研究我的日子還是不明白爲什麼:Echo -e轉義序列?

echo -e a\nb 

給我的輸出:ANB

雖然

echo -e 'a\nb' -----> Gives me an output of 

a 
b 

我明白,回聲-e啓動轉義序列,所以它應該在第一個例子上工作,但它不..我迷路了。 我在Ubuntu和OpenSuse中嘗試了相同的命令。兩者都是相同的結果。 任何幫助?

回答

0

當沒有引用\字符時,shell將解釋\字符,並且shell(通常)將其解釋爲與echo命令不同。

echo -e a\nb 

在上文中,所述殼解釋\nn,因爲字符不在引號。因此,shell將字符anb傳遞給echo命令。

echo -e 'a\nb' 

在上文中,外殼經過精確字符a\nb到echo命令,這是因爲單引號告訴shell不解釋\

需要注意的是bash的支持引述該形式解釋ANSI C直接逃逸:

echo $'a\nb' 
+0

謝謝您的回答。它真的幫助了我。 – hbrtxito

2

echo 'a\nb' 這意味着\n\r\r\n是新行或在您的鍵盤迴車鍵。它解析這些字符串。這樣的結果是:

a 
b 

echo a\nb,它不解析,但只是打印正常的字符串。 要啓用或禁用反斜槓解釋,您可以-e-E

裁判:https://en.wikipedia.org/wiki/Newline

裁判:http://linux.die.net/man/1/echo