首页 > 解决方案 > 如何将python变量传递给shell scriptT

问题描述

我有一个带有 first.sh 的 shell 脚本,它在内部调用了一个 python 脚本 second.py。当这个 python 脚本执行时,它会根据某些参数设置一些变量 var='yes'。

现在我需要将此 var 变量传递给它正在调用的 shell 脚本并进行一些处理。请让我知道该怎么做。

我尝试了 os.system('bash') ,但它正在创建新会话并且 shell 脚本的执行没有继续。

标签: pythonbashshellunix

解决方案


一个常见的模式是在父进程 (bash) 和子进程 (python) 之间使用文件描述符。在简单的情况下,只使用标准输入/输出。所以 bash 可以读取结果。像这样的东西:

#!/bin/bash
foo=$(python script.py)
echo "$foo"

如果您需要比单个变量更复杂的东西,您将需要决定数据的一些格式以及如何处理它(也许以 json 格式输出?)


推荐阅读