想象一下,我在一个 Python 程序中列出了很多文件路径,然后想在终端中使用它。
我可以将它存储到一个文件中。
我可以在 Python 程序之外通过管道传输它,以便 bash 可以读取它。
但是可以只是设置某种变量,以便当前shell(运行脚本的shell)作为普通bash变量访问输出?
你可以设置一个环境变量。
但是,要让当前的 shell 可以访问 hit,您可能必须使用一些 hack:
在您的 python 脚本中,创建一个临时.sh
文件,该文件将使用 设置环境变量export yourname=yourlist
,然后运行并删除它。
另一种方法是使用例如使用python 模块的Unix Domain Sockets ,并使用或或使用python模块socket
在您的shell 中读取它。socat
netcat
mmap
请注意,使用“$var”访问 bash 变量的不同之处在于保留了换行符,而使用普通的 $var 将它们更改为空格。
paddy$ echo $SHELL
/bin/bash
paddy$ unset frompython
paddy$ cat alltxt.py
from glob import glob
print("\n".join(glob("*.txt")))
paddy$ python alltxt.py
entry3.txt
entry2.txt
test_in2.txt
infile.txt
test_in.txt
entry.txt
entry1.txt
testfile.txt
paddy$ frompython=`python alltxt.py`
paddy$ echo $frompython
entry3.txt entry2.txt test_in2.txt infile.txt test_in.txt entry.txt entry1.txt testfile.txt
paddy$ echo "$frompython"
entry3.txt
entry2.txt
test_in2.txt
infile.txt
test_in.txt
entry.txt
entry1.txt
testfile.txt
paddy$