簡體   English   中英

將python變量的值分配給python腳本內的bash變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM