[英]Assign the value of a python variable to a bash variable inside a python script
我有一個Python腳本,該腳本具有一個變量,該變量的值是從文件中讀取的。
我想做的是,將此值保存到bash變量中,以便我可以在帶有pexpect的python腳本中使用它。
這就是我要使用的方式:
#!/usr/bin/python
import pexpect
a="value read from a file"
pexpect.run("bash_a='value of a'")
print(pexpect.run("ps -ef|grep $bash_a"))
有辦法嗎?
如果您真的想在環境中放置一個變量,那就是os.environ
>>> import os
>>> os.environ['bar'] = "foo"
>>> os.system("bash -c 'echo \"$bar\"'")
foo
0
顯然,這需要在啟動任何需要此變量的子流程之前發生。
通過pexpect
獲取流程清單似乎完全是解決問題的錯誤方法,但也許您的實際情況更有意義。
另外, ps -ef | grep foo
ps -ef | grep foo
將與grep foo
進程的進程ID匹配。 您最好在Python中進行過濾。
for proc in subprocess.check_output(['ps', '-ef']).split('\n'):
if 'value of a' in proc:
print(proc)
您可以執行類似將兩個字符串加在一起的操作:
pexpect.run("bash_a='" + a + "'")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.