2013-01-08 131 views
0

我正在編寫一個shell腳本,用於創建數據庫並將值存儲到database.file中的鍵中。Shell腳本和-e參數

我得到了一個測試,吸引了我的注意力,我想知道爲什麼會發生這種情況。

./shellscript put key -e 

預期的行爲將創建一個文件:

key <-> -e 

出於某種原因,我的shell腳本,甚至不能趕上「-e」,甚至在打印時,$ 1,通過-e作爲第一個參數。

+0

你在Linux上嗎?如果將環境變量POSIXLY_CORRECT設置爲1,參數是否顯示?如果是這樣,有一個解釋... –

+0

嗨,是的,我在Linux上,我測試與POSIXLY_CORRECT設置爲1,但沒有任何改變。 – cp151

+1

'key <-> -e'是文件的內容,對不對?你的問題措辭的方式,它看起來像是文件的名稱,這將是合法的,但很奇怪。 –

回答

0

讓我猜。你在shell腳本中使用「echo」來打印命令行參數嗎?如果是的話:更換每

echo foobar 

通過

printf '%s\n' foobar 

請問現在的問題消失? (根據你的「回聲」版本,它將 -e和/或-n解釋爲選項,而不是作爲參數。)