首页 > 解决方案 > 如何使用 bash 脚本执行 python.py 应用程序,然后模拟用户输入

问题描述

我正在尝试编写一个简单的 bash 脚本,使我能够通过将不同的输入应用于 python 应用程序来测试 python 应用程序。

我的目标是做到以下几点:

  1. 执行我的python应用程序,即。python3 mycode.py
  2. python代码旨在等待用户输入,然后是回车键。bash 脚本提供输入和回车键。
  3. 使用我硬编码到脚本中的任何不同输入重复此操作多次。

我花了很多时间搜索有关此主题的先前问题,并尝试使先前的答案适应此任务,但似乎没有什么效果。

我可以执行 python 应用程序。但后来我的问题在于让脚本输入用户输入。我的 bash 脚本只是暂停并等待我输入输入。

python代码mycode.py如下:

        reader = sys.stdin
        word = reader.readline()
        print(word)

我的麻烦似乎是让 bash 脚本将我的输入参数传递给 pythonreadline()

我的 bash 脚本编写如下:

        #!/bin/bash
        python3 mycode.py
        read

我还尝试使用python3 mycode.py &将控制权从 python 返回给 bash 脚本,以使其接受硬编码的用户输入,但这也不起作用。我也尝试过使用echoand $1

任何建议,将不胜感激。谢谢你。

更新:事实证明,python3 mycode.py <<< 'somestring'如果有人对未来感兴趣,那效果真的很好。

标签: pythonpython-3.xbash

解决方案


如果您使用的是 bash v4 或更高版本,您可能想要使用协进程,使用“coproc”命令。但是,如果您的唯一目标是测试 python,为什么不看看 pytest,并阅读猴子补丁。


推荐阅读