【发布时间】:2021-02-08 22:10:30
【问题描述】:
我正在使用子进程编写一个脚本,该脚本将在终端上启动一个应用程序,然后退出它。我正在尝试掌握子进程的窍门,而我对终端命令的熟练程度有些不稳定。 (这是一种轻描淡写的说法。)
假设应用程序是 Mathematica。然后以下终端命令将启动应用程序并退出它:
open -a Mathematica
osascript -e 'quit app "Mathematica"'
我找到的 osascript 建议
https://osxdaily.com/2014/09/05/gracefully-quit-application-command-line/
在 python 脚本中,我可以使用启动应用程序
subprocess.Popen("open -a Mathematica", shell=True)
我试过了
subprocess.Popen("osascript -e 'quit app "Mathematica"'", shell=True)
和其他变种但没有成功关闭应用程序。
我在空闲时使用 Mac OS 10.15.4 和 Python 3.7。
【问题讨论】:
-
顺便说一句,您是否尝试过在终端中运行
osascript -e 'quit app "Mathematica"'?成功了吗? -
在定义 osascript 命令的字符串中是否包含转义字符?他们只是在翻译到 SO 网站时迷路了吗?我问是因为嵌入的双引号导致显示的代码无效。
-
@GiorgosMyrianthous - 这对你有用吗?我的 Mac 在其 PATH 中没有“退出”命令。
-
@GiorgosMyrianthous——回答你的问题,答案是“不”,它没有用。我想试试你的建议,刚刚被删除。您提出的解决方案是否有错误?
-
@Steve 我的意思是
osascript -e 'quit app "Mathematica"'。我的机器上没有安装 Mathematica,但我已经在其他应用程序中尝试过该命令,它确实对我有用
标签: python subprocess