2016-10-10 40 views
1

我使用argparse編寫CLI工具。Python argparse - 在bash特殊字符作爲參數傳遞時脫離參數

下面是我的代碼片段:

parser.ArgumentParser() 
parser.add_argument('--username') 
parser.add_argument('--password') 
args = parser.parse_args() 
print(args.password) 

我在我的Mac上運行的腳本:

>>> prog.py --username xyz --password abc$xyz

輸出:

>>> abc

我知道這是bash shell中將'$ xyz'解釋爲bash變量,並試圖取代'$ xyz'

是否有辦法我可以解決這個問題,而不用將密碼括在引號中?

+0

backspace轉義美元符號,所以你可以這樣做:\ $ xyz –

+1

這不是Python問題,這是一個*如何在bash *問題中轉義特殊字符。 –

+0

我知道這不是一個Python問題,我甚至知道如何在bash中轉義特殊字符。 @dkasak正確回答了它。 – user6037143

回答

-1

您可以在$prog.py --username xyz --password abc\$xyz前加上反斜槓。

否則,沒有。您正確地觀察到它是這樣做的bash,因此,在Python/argparse接收到該命令時,沒有任何事情可以完成。

+0

謝謝。我可能會解決它。 – user6037143