0

想象一下,我在一个 Python 程序中列出了很多文件路径,然后想在终端中使用它。

我可以将它存储到一个文件中。

我可以在 Python 程序之外通过管道传输它,以便 bash 可以读取它。

但是可以只是设置某种变量,以便当前shell(运行脚本的shell)作为普通bash变量访问输出?

4

2 回答 2

2

你可以设置一个环境变量。

但是,要让当前的 shell 可以访问 hit,您可能必须使用一些 hack:

在您的 python 脚本中,创建一个临时.sh文件,该文件将使用 设置环境变量export yourname=yourlist,然后运行并删除它。


另一种方法是使用例如使用python 模块的Unix Domain Sockets ,并使用或或使用python模块socket在您的shell 中读取它。socatnetcatmmap

于 2012-08-31T09:25:43.117 回答
1
  1. 创建一个 python 程序将文件打印到标准输出
  2. 使用反引号执行 python 脚本以将脚本的输出存储在 bash 变量中

请注意,使用“$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$ 
于 2012-08-31T10:39:04.530 回答