以交互方式运行后sleep 10 &
立即关闭运行该命令的终端,该sleep
命令将在 10 秒之前终止。
但是当这个命令被放入脚本时:
# this is a file named testfile.sh
sleep 10 &
然后作为执行bash testfile.sh
,sleep
即使终端关闭后,命令仍会持续执行直至完成。
为什么在一种情况下sleep
终端关闭后立即停止,而在另一种情况下它继续执行?
以交互方式运行后sleep 10 &
立即关闭运行该命令的终端,该sleep
命令将在 10 秒之前终止。
但是当这个命令被放入脚本时:
# this is a file named testfile.sh
sleep 10 &
然后作为执行bash testfile.sh
,sleep
即使终端关闭后,命令仍会持续执行直至完成。
为什么在一种情况下sleep
终端关闭后立即停止,而在另一种情况下它继续执行?
我可以在 Bash 中的命令之间来回切换:
$ vim
CTRL-Z
# vim is in background now
# can resume it with:
$ fg
我试图用嵌套的 shell 做同样的事情,但是没有效果:
# launch nested Bash shell:
$ bash
CTRL-Z
# still in nested shell...
是否可以像示例一样将嵌套的shell置于后台并返回到父shell vim
?
如果不可能,那么原因是什么?