2011-05-26 26 views
0

如果我在參數中使用$符號,則python optparse無法正確解析它。它只是忽略了符號和下一個字符。如果我在$之前給出一個\,那麼它工作正常。但我不想給\。請幫我解決這個問題。

它僅在Linux中發生;在Windows上它工作正常。

提前感謝您的幫助。

+1

即將推出。 – 2011-05-26 06:38:58

+0

Unix shell不允許在參數中使用'$'。請提供不會解析的代碼和命令行。 – 2011-05-26 10:05:57

回答

4

我認爲,這是因爲Linux使用$來識別shell變量。

所以,如果你想在你的參數使用此symbole,你唯一的機會就是要通過「\ $」,不會被調用shell來代替。 Windows使用%variablename%來標識那種變量,這就是爲什麼你不會在這個O.S.上遇到這種「問題」。

+0

OP可以驗證這不是他的腳本或Linux的Python實現是通過調用_another_ python腳本他的劇本與'subprocess'模塊的故障。然後,shell擴展將不會在參數上執行。是這樣的:'subprocess.Popen([ 「/路徑/到/ script.py」, 「$ ARG1」, 「ARG $ 2」, 「等」])進行通信()' – 2011-05-26 08:02:57

+0

嗯..不是你_only_機會。你也可以用單引號包裝每個參數。這樣,你可以有空間,換行符和你的論點中幾乎所有的東西。例如:echo'$ hey,$ you' – Gurgeh 2011-05-26 11:29:09

+0

再次閱讀你的答案,它看起來像你用單引號括住你的參數,並使用反斜槓。你應該只使用其中之一。 – Gurgeh 2011-05-26 11:31:23