【发布时间】:2021-09-21 08:35:05
【问题描述】:
我正在编写一个 python 程序,它在子进程中运行一些 BASH 脚本。 有人可能会说我使用 BASH 作为我的 python 程序的脚本语言。
有没有办法将 python 函数注入到我的 bash 脚本中,而无需从 bash 重新加载 python 代码?
strawman 示例:如果这是运行 Javascript 的 Python,那么我可以将我的 Python 函数绑定到 js2py VM 并从 javascript 中调用它们。
我想从 bash 调用:python some_file_of_mine.py,但这将启动一个新的 python 进程,而无法访问我的 python 程序的数据。
还想打电话给:python -c $SOME_INJECTED_PYTHON_CODE。这可以使用 Python 的 inspect.source() 将一些简单的 Python 代码以及一些来自父进程的绑定数据预注入到子 bash shell 中。但是,这将非常有引号(`/") 的意义,并且会导致 $import 出现一些问题。
我真正想要的是一种将父进程调用为 bash 子进程并取回一些数据的简单方法(不使用 Flask + CURL 组合)
【问题讨论】:
-
我不明白你的问题。也许您应该在一个 Python 脚本中运行所有内容并跳过所有 bash 代码。或者,也许您应该将数据写入文件并在其他脚本中读取。或作为参数发送
python script.py arg1 arg2 ... -
您可以使用 fifo 文件进行通信,或者让 Python 进程创建一对 fds 来读取/写入。但是为什么不使用 Python 编写 Python 脚本呢?
-
@AKX 文件描述符听起来是个好主意。我会试试的
-
这似乎是XY Problem 的一个例子。
标签: python bash shell scripting