經過研究我的日子還是不明白爲什麼:Echo -e轉義序列?
echo -e a\nb
給我的輸出:ANB
雖然
echo -e 'a\nb' -----> Gives me an output of
a
b
我明白,回聲-e啓動轉義序列,所以它應該在第一個例子上工作,但它不..我迷路了。 我在Ubuntu和OpenSuse中嘗試了相同的命令。兩者都是相同的結果。 任何幫助?
經過研究我的日子還是不明白爲什麼:Echo -e轉義序列?
echo -e a\nb
給我的輸出:ANB
雖然
echo -e 'a\nb' -----> Gives me an output of
a
b
我明白,回聲-e啓動轉義序列,所以它應該在第一個例子上工作,但它不..我迷路了。 我在Ubuntu和OpenSuse中嘗試了相同的命令。兩者都是相同的結果。 任何幫助?
當沒有引用\
字符時,shell將解釋\
字符,並且shell(通常)將其解釋爲與echo命令不同。
echo -e a\nb
在上文中,所述殼解釋\n
如n
,因爲字符不在引號。因此,shell將字符anb
傳遞給echo命令。
echo -e 'a\nb'
在上文中,外殼經過精確字符a\nb
到echo命令,這是因爲單引號告訴shell不解釋\
。
需要注意的是bash的支持引述該形式解釋ANSI C直接逃逸:
echo $'a\nb'
在echo 'a\nb'
這意味着\n
,\r
,\r\n
是新行或在您的鍵盤迴車鍵。它解析這些字符串。這樣的結果是:
a
b
在echo a\nb
,它不解析,但只是打印正常的字符串。 要啓用或禁用反斜槓解釋,您可以-e
至-E
。
謝謝您的回答。它真的幫助了我。 – hbrtxito