2010-04-15 42 views
6

爲什麼
$ echo'-n'
不會在終端上寫-n,儘管-n會寫在引號內?echo newline suppression

+0

你用什麼語言? – thecoshman 2010-04-15 12:33:44

+0

我猜想這是一個shell語法問題(即bash或其他)。 – Pointy 2010-04-15 12:35:17

回答

8

由於引號是由shell處理的,並且echo命令收到的是普通的-n。如果您想回顯-n,您可以printf '%s\n' -n

+2

這是一個恥辱'--'(選項結束)不支持:( – extraneon 2010-04-15 12:37:55

+0

以下工程與bash:echo -e -n \\ c – Tino 2010-12-01 00:57:56

0

引號沒有幫助,因爲...呃,這很難解釋。在「echo」命令本身被評估之前,shell會將引號關閉,所以到那時它們並不重要。

試試這個:

echo - -n 

那不是記錄爲工作(我運行Ubuntu Linux操作系統),但echo幾乎可以肯定是一個內置在你使用什麼殼,於是男人頁反正有問題。它對我有用。 (我正在運行zsh,因爲我真的很和藹可親)。

編輯:好像看起來bash內建的edit沒有這樣的表現。我不知道該怎麼建議;這個:

echo '' -n 

會給你「-n」前面有一個空格,這(取決於你在做什麼)可能是好的。

+0

不適用於我。輸出' - -n' – extraneon 2010-04-15 12:35:32

+0

對我來說是這樣的 > echo - -n - -n – 2010-04-15 12:35:43

+0

嗯,就像我剛剛在編輯中指出的那樣,它可能因shell而異。 – Pointy 2010-04-15 12:37:48

2

你應該儘量使用更便攜的printf

2

你可以嘗試

echo -e '\055n' 
0

不Quiete酒店有:

echo -e 'a-n\b\b\b ' 
-n 

出奇這個工程:

echo -e '-n\b' 
-n 

這裏一個解決方案,我可以解釋一下:

echo "foobar" | sed 's/.*/-n/' 
-n 
2

我發現下面只是工作在bash:

echo -n PRINT_THIS 

所以,你應該把-n首位。