我該如何將一個Python變量傳遞給Bash shell?它應該是這樣的: foo="./RetVar.py 42"
如何將Python變量傳遞給Bash?
用'替換雙引號小號
我曾嘗試印刷和sys.exiting的結果,但無濟於事。我將如何實現我的目標?
我該如何將一個Python變量傳遞給Bash shell?它應該是這樣的: foo="./RetVar.py 42"
如何將Python變量傳遞給Bash?
用'替換雙引號小號
我曾嘗試印刷和sys.exiting的結果,但無濟於事。我將如何實現我的目標?
foo="$(scriptthatprintssomething)"
就是這樣。 print
。或者sys.stdout.write()
。或者類似的。如果腳本不可執行,那麼您需要明確指定解釋器。
foo="$(python scriptthatprintssomething.py)"
你想要的形式工作得很好:
$ cat >Retvar.py
#!/usr/bin/python
import sys
print sys.argv[1]
$ chmod +x RetVar.py
$ foo=`./RetVar.py 42`
$ echo $foo
42
$
所以想必你曾試圖打印的方式是不正確的。 (這與使用舊式backquotes或更新式的構造(如$()
)相當獨立)。如果你仍然有這個問題,你能向我們展示一下Python代碼的最簡單的例子來重現它,幫助我們幫助你嗎?
在bash中``cmd \
和$(cmd)將被命令的輸出替換。這可以讓你的程序的輸出分配給一個變量像
foo=`some command`
或
foo=$(some command)
通常你用雙引號把這個包,所以你可以在你的輸出有空格。它必須是雙引號,因爲單引號內的東西不會被執行。