2017-08-17 54 views
0

我想寫一個python文件,它接受命令行輸入並執行一些操作,輸入將包括az,[,],(和)。程序只是爲了檢查,我可以繼續下去:可執行文件python文件系統不接受'('字符

#!/usr/bin/env python 
import sys 

print str(sys.argv) 

我做chmod +x program,並試圖調用./program qwerty (abc) [hi]和它返回:

-bash:靠近意外的標記語法錯誤'(」

有什麼改變方式程序,以便它接受參數中的括號?

注意:我也嘗試在括號之前放置方括號,它會返回相同的錯誤。

+4

'()'有特殊含義外殼 - 它在子shell調用封閉命令。用雙引號括起你的字符串去除特殊含義 - './program qwerty「(abc)」「[hi]」' – codeforester

+0

我遵循一個規範,不能修改上面輸入的編輯問題。 – jordanc

+1

在程序**運行之前,它在shell中失敗,所以不能,在程序中不能更改它。 –

回答

2

在調用腳本時,腳本無法對shell語法執行任何操作。 shell首先解析命令行。你要逃避或有殼(包括大多數標點符號),特殊含義的引號字符:

./program qwerty \(abc\) '[hi]' 
相關問題