[英]set bash variable from python script
我正在我的 bash 腳本中調用一個 python 腳本,我想知道是否有一種簡單的方法可以在我的 python 腳本中設置我的 bash 變量。
例子:
我的 bash 腳本:
#!/bin/bash
someVar=""
python3 /some/folder/pythonScript.py
我的python腳本:
anotherVar="HelloWorld"
有沒有辦法可以將我的 someVar 設置為 anotherVar 的值? 我正在考慮在 python 腳本內的文件中打印屬性,然后從我的 bash 腳本中讀取它們,但也許還有另一種方法。 此外,我不知道也不認為這有什么區別,但我可以用相同的名稱命名兩個變量(someVar/someVar 而不是 someVar/anotherVar)
不,當你執行python
,你啟動了一個新進程,每個進程只能訪問自己的內存。 想象一下,如果一個進程可以影響另一個進程的內存會發生什么! 即使對於這樣的父/子進程,這也將是一個巨大的安全問題。
不過,您可以制作 python print()
一些東西並使用它:
#!/usr/bin/env python3
print('Hello!')
在你的 shell 腳本中:
#!/usr/bin/env bash
someVar=$(python3 myscript.py)
echo "$someVar"
當然,您還可以使用許多其他 IPC 技術,例如套接字、管道、共享內存等……但是如果沒有上下文,就很難提出具體建議。
shlex.quote()
在Python 3,或pipes.quote()
在Python 2,可用於生成代碼,其可以是eval
ED由主叫殼。 因此,如果以下腳本:
#!/usr/bin/env python3
import sys, shlex
print('export foobar=%s' % (shlex.quote(sys.argv[1].upper())))
...被命名為setFoobar
並被調用為:
eval "$(setFoobar argOne)"
...然后調用 shell 將設置一個名為foobar
和值為argOne
的環境變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.