【问题标题】:Interacting with Linux Command Line Applications与 Linux 命令行应用程序交互
【发布时间】:2018-03-16 20:58:49
【问题描述】:

所以,我正在尝试通过命令行自动执行在 Linux 上运行的 python 应用程序菜单。我知道我需要输入哪些命令才能通过菜单,但似乎无法弄清楚如何让 shell 脚本执行我想要的操作。相反,它会等到应用程序关闭以完成脚本。例如:

我的 shell 脚本:

#!/usr/bin/bash

./App.py
echo '1'
echo '2'
echo '3'

我期望发生的事情

[adminuser@localhost BASH]$ ./auto.sh
Welcome to App.py!
Enter 1 to continue or 2 to exit: 1

Enter 2 to continue or 3 to exit: 2

等等……

相反,我必须自己继续浏览菜单,然后当应用程序终止时它会输出我的所有回声。

这里需要注意的是,我无法安装任何未安装在 Ubuntu 中的库。出于安全原因,此计算机未联网,并且无法与任何磁性媒体进行交互。我有哪些选择?

提前致谢!

【问题讨论】:

标签: python linux shell command line


【解决方案1】:

您的脚本应如下所示:

(echo -e "1\n2\n3") | python App.py

【讨论】:

    【解决方案2】:

    您也可以使用“here-doc”-

    app.py<<DONE
    1
    2
    3
    DONE  
    

    但我讨厌那些。将您预期的响应放入文本文件并使用从该文件重定向的 stdin 执行。

    printf "1\n2\n3\n">response.in # I assume it would be a little more complex
    App.py << response.in          # reads response.in as input
    

    然后你甚至可以在 response.1、response.2 等中拥有各种响应集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2012-12-18
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      相关资源
      最近更新 更多