当我双击我的.command文件时,它会读取每一行,直到它命中nohup
命令终止应用程序(终端),因为它在后台运行。
现在,当在脚本顶部输入以下命令时,整个脚本都可以正常工作。为什么会发生这种情况?
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>/Users/$username/Desktop/log.out 2>&1
答案 0 :(得分:0)
当我在脚本中运行此命令时,显然是这样的:
nohup osascript -e 'tell application "Terminal" to do script "'"$DIR"'"' & pkill -f -a Terminal
使用pkill终止应用程序会为整个脚本带来问题。因此,破坏了SIGHUP
信号。我的解决方案如下......
trap '' 1 # this blocks sighup so we don't die when terminal is closed
感谢来自Freenode Chat - #bash频道的 izabera 。