2017-08-17 3 views
0

コマンドライン入力を受け取り、いくつかのアクションを実行するpythonファイルを作成しようとしています。入力はaz、[、]、(および)で構成されます。ちょうど私が続けることができることを確認するためのプログラム:実行可能なpythonファイルsysを受け付けない '('文字

#!/usr/bin/env python 
import sys 

print str(sys.argv) 

私はchmod +x programを行なったし、./program qwerty (abc) [hi]を呼び出してみましたし、それが返さ:

-bash:予期しないトークンの近くに構文エラー `(」

がいずれかがあります変化する方法プログラムこれで、引数のかっこが受け入れられましたか?

注:かっこの前に角かっこを置いてみましたが、同じエラーが返されました。

+4

()'シェルにとって特別な意味を持っている - それはサブシェルで囲まれたコマンドを呼び出す:あなたは(ほとんどの句読点文字が含まれる)シェルで特別な意味を持つ文字をエスケープするか引用しなければなりません。 './program qwerty"(abc) "" [hi] "' – codeforester

+0

私は仕様に従っており、上記の編集した質問を変更することはできません。 – jordanc

+1

**プログラム**が実行される前にシェルで失敗していますので、プログラムで変更することはできません。 –

答えて

2

スクリプトを呼び出すときに、シェルの構文についてスクリプトが行うことは何もありません。シェルは最初にコマンドラインを解析します。 `

./program qwerty \(abc\) '[hi]' 
関連する問題