让我们定义一个 shell 函数(这里的 shell 是 Bash)并测试它
$ s () { xterm -e sleep 5 & }
$ s
[1] 307926
$
[1]+ Done xterm -e sleep 5
$
根据我对更好的具体理解,我可以s
像这样重新定义
$ s () { xterm -e sleep 5 & disown ; }
$ s
[1] 307932
$
$
(作业完成时,shell 没有发出任何消息)。
在这里,我不得不问,是否可以定义,s
以便我有
$ s () { pre_magic xterm -e sleep 5 post_magic ; }
$ s
$
$
即,抑制 shell 在终端上打印的作业信息?
一种方法是将调用包装在子shell中,这样可以有效地强制所有不需要的作业控制输出由无头子shell处理。关键是确保
&
位于子shell包装器内部,例如: