0
我正在編寫一個shell腳本,用於創建數據庫並將值存儲到database.file中的鍵中。Shell腳本和-e參數
我得到了一個測試,吸引了我的注意力,我想知道爲什麼會發生這種情況。
./shellscript put key -e
預期的行爲將創建一個文件:
key <-> -e
出於某種原因,我的shell腳本,甚至不能趕上「-e」,甚至在打印時,$ 1,通過-e作爲第一個參數。
我正在編寫一個shell腳本,用於創建數據庫並將值存儲到database.file中的鍵中。Shell腳本和-e參數
我得到了一個測試,吸引了我的注意力,我想知道爲什麼會發生這種情況。
./shellscript put key -e
預期的行爲將創建一個文件:
key <-> -e
出於某種原因,我的shell腳本,甚至不能趕上「-e」,甚至在打印時,$ 1,通過-e作爲第一個參數。
讓我猜。你在shell腳本中使用「echo」來打印命令行參數嗎?如果是的話:更換每
echo foobar
通過
printf '%s\n' foobar
請問現在的問題消失? (根據你的「回聲」版本,它將 -e
和/或-n
解釋爲選項,而不是作爲參數。)
你在Linux上嗎?如果將環境變量POSIXLY_CORRECT設置爲1,參數是否顯示?如果是這樣,有一個解釋... –
嗨,是的,我在Linux上,我測試與POSIXLY_CORRECT設置爲1,但沒有任何改變。 – cp151
'key <-> -e'是文件的內容,對不對?你的問題措辭的方式,它看起來像是文件的名稱,這將是合法的,但很奇怪。 –