You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python subprocess响应bash中的交互式程序

Python交互bash脚本实现方案

可以实现,借助Python标准库subprocess模块即可完成全部需求,无需修改原有bash脚本。

完整代码示例

import subprocess

# 启动sh example.sh子进程
proc = subprocess.Popen(
    ["sh", "example.sh"],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    text=True
)

# 自动注入输入内容并等待脚本执行完成,获取输出
stdout, stderr = proc.communicate(input="python\n")

# 处理输出得到问候语
greeting = stdout.strip()
print(f"读取到的问候语:{greeting}")

实现逻辑说明

  • 调用subprocess.Popen启动sh example.sh子进程,同时将子进程的标准输入、标准输出、标准错误绑定到Python的管道,text=True参数设置输入输出为字符串格式,无需手动进行bytes和字符串的编解码转换
  • 调用proc.communicate(input="python\n")向子进程自动注入输入内容python加换行符,匹配bash脚本的read读取逻辑,方法会阻塞等待子进程执行完成后返回子进程的所有标准输出、标准错误内容
  • 对返回的标准输出内容做首尾空白符清理后,即可得到Hi python!的问候语内容,后续可以在Python中直接使用该变量。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:36:03