bash:从程序执行返回,但在退出脚本后关闭程序



我想在我的Mac上执行一个bash脚本,该脚本将启动命令行程序caffeinate。但是如果我像这样开始它:

#!/bin/bash
caffeinate

它不会返回,终端将被阻止。那不是我想要的。但另一方面,如果我关闭终端,程序也应该退出。我怎样才能做到这一点?

我已经尝试过玩returnexit,但没有得到我想要的。

尝试类似以下内容:

#!/bin/bash
trap 'kill -TERM $caffeinate_pid' EXIT
caffeinate &
caffeinate_pid=$!

此脚本需要获取(使用 source. (,以便陷阱位于调用 shell 的上下文中(您希望使用该调用 shell 终止以触发咖啡因终止(。

这是

由 Terminal.app 引起的,其中现有的解决方法是进入终端的首选项并将"当shell退出时:"设置为"关闭窗口",并将"关闭前询问:"设置为"从不"或"仅当有其他进程,然后登录shell和:",并将您的程序添加到关闭窗口时不提示用户的程序列表中。不确定第二部分是否适用于脚本,也不确定是否有使用更多 bash 和 AppleScript 代码的更通用的解决方法,以便最终用户无需更改任何首选项。

相关内容

  • 没有找到相关文章

最新更新