【问题标题】:Call bash script after exiting python program退出python程序后调用bash脚本
【发布时间】:2016-02-16 09:13:34
【问题描述】:

我是 Python 新手,可以在这里找到我大部分问题的答案,所以我想你们可以帮助我解决这个问题:

我正在开发某种混合应用程序,使用 bash 脚本来显示菜单和调用 python 应用程序(我这样做是为了简化事情)。

我的问题是,当我结束 python 应用程序时,它只是终止了进程并返回菜单,我必须重新启动整个程序。我尝试使用“subprocess.call('xxx')”,但它会在我正在运行的应用程序中打开 bash 脚本,只显示文本(回显),没有其他功能。

有没有办法先结束python应用,然后调用shell脚本?

【问题讨论】:

  • "当我结束 python 应用程序时,它只是终止进程并返回菜单,我必须重新启动整个程序。"您应该做的是将对 python 程序的调用嵌入循环中(在您的 bash 脚本中)。另外,为什么不能只用 Python 编写菜单代码?
  • @4ae1e1 是的,这就像一个魅力!谢谢! :) 老实说,因为我已经使用 bash 制作了所有这些并将其转换为 python 会花费很多时间......我只使用 python 进行数据库操作,“应用程序”上的所有其他内容是 bash。

标签: python linux bash shell


【解决方案1】:

您可以将代码包装在一个 while-true 循环中

while :; do
    # Assuming you want to show the menu before you start a program:
    bash showMenu.py
    python myScript.py
    # When the above scripts exits the process will start all over again
    # You might want to consider checking the exit code and only continue if the program exits with status code 0
    # [ $? gt 0 ] && break
done

【讨论】:

  • 我实际上按照 4ae1e1 的建议在我的 bash 脚本中使用了“等待”,因为这样做似乎更容易......但是谢谢你的回答! :-)
  • 我不建议在我的评论中等待...我的答案会和这个一样。
  • @4ae1e1 您需要使用@user 通知约翰您的评论:-) 如果您不这样做,它将转到帖子的 OP(在这种情况下是我)
猜你喜欢
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2019-10-15
  • 2017-12-03
  • 1970-01-01
相关资源
最近更新 更多