2017-04-26 101 views
0

我有一個簡單的bash腳本,它可以接受它將被視爲文本字符串的參數,僅此而已。Bash腳本檢查代字號'〜'是否是參數

如果我給它~,沒有引號,那麼主目錄/home/users/me就是解析的內容。引用它,"~",沒關係。字符「〜」是我想要的,而不是家鄉的道路。

有沒有什麼方法可以確保將未加引號的~嚴格視爲字符「〜」,而不是主目錄別名?

+1

不,它在您的腳本看到它之前由shell解釋。 – 123

+0

代字號擴展正在由shell執行,而不是由腳本執行。您還可以通過在反斜槓之前加前綴來禁用代字符擴展。 – ghoti

+0

爲什麼你需要這樣做有什麼特別的原因嗎?你不能引用或轉義你的命令行參數嗎? –

回答

0

在參數傳遞給腳本之前,bash shell正在命令行上擴展~

There 可能是一個bash選項,您可以在shell中進行更改,但這會影響shell中的所有內容,而這聽起來並不像您想要的那樣。

簡短的回答我認爲是不。在腳本中沒有任何東西可以改變父shell在將它們傳遞給腳本之前擴展任何參數的方式。

+0

我沒有看到任何店鋪禁用'〜'擴展。 https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html –

+0

謝謝。儘可能多地思考。 –