2010-02-15 77 views
1

當我在終端(bash)的運行它回波打印出-e內部腳本

echo -e ."\c" 

打印出.並且抑制換行符。

當我運行下面的腳本(所有的代碼)

echo -e ."\c" 
echo -e ."\c" 

它打印出..並抑制新行。

當我在shebang腳本中運行它時(!#/bin/sh),它打印出-e . -e .並禁止換行符。

爲什麼?我該如何預防呢?

編輯: 我想,以防止打印出-e的,所以我的輸出應爲. .

+0

是你的家當行實際上'#!/ bin中/ echo'?在這種情況下,這可能是由於echo是內置的,shebanged文件實際執行的二進制文件不能解釋-e。 – falstro 2010-02-15 17:27:40

+0

不,它的'#!/ bin/sh',還有-e標籤實際上可以工作,但它仍然會打印出來。 – 2010-02-15 17:28:12

+0

只是在此澄清:您期望看到什麼結果,以及您試圖阻止哪部分? – 2010-02-15 17:28:19

回答

1

腳本家當改變#!/bin/bash代替#!/bin/sh,看看它是否工作

+1

或者使用/ bin/echo如果你想保持shebang不變 – shuvalov 2010-02-15 17:42:12

+0

更改/ bin/sh更安全,因爲如果在bash中使用了sh,那麼這些東西將不起作用。 – ghostdog74 2010-02-16 00:50:05

+0

鑑於我使用sh編寫並測試了腳本,在使用bash時可能會發生什麼事情? (它現在沒有實際意義,因爲所有東西在改成bash之後都可以工作) – 2010-02-16 04:54:07

1

你需要給,如果你的家當行調用SH呼應的絕對路徑。或者只是改變shebang使用bash。