Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 命令文件(双击时)不';如果没有插入此代码,则无法工作…为什么?_Bash_Macos_Exec_Nohup - Fatal编程技术网

Bash 命令文件(双击时)不';如果没有插入此代码,则无法工作…为什么?

Bash 命令文件(双击时)不';如果没有插入此代码,则无法工作…为什么?,bash,macos,exec,nohup,Bash,Macos,Exec,Nohup,当我双击.command文件时,它会读取每一行,直到点击nohup命令,该命令在后台运行时终止应用程序(Terminal) 现在,当在脚本顶部输入下面的命令时,整个脚本都工作了。究竟为什么会发生这种情况 exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>/Users/$username/Desktop/log.out 2>&1 显然,当我在脚本中运行此命令时: no

当我双击.command文件时,它会读取每一行,直到点击
nohup
命令,该命令在后台运行时终止应用程序(Terminal

现在,当在脚本顶部输入下面的命令时,整个脚本都工作了。究竟为什么会发生这种情况

exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>/Users/$username/Desktop/log.out 2>&1

显然,当我在脚本中运行此命令时:

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
感谢来自巴什频道的伊扎贝拉