Answers:
这不是程序输出,而是一些有用的shell信息。
无论如何,可以使用subshell和输出重定向将其隐藏
( sleep 3 & ) > /dev/null 2>&1
在bash或zsh中,您可以调用disown %1
告诉Shell忘记这项工作。这样,shell将不会输出有关该作业的任何消息,也不会在您运行jobs
或向其发送SIGHUP 时显示该消息。在zsh中,使用&!
代替开始工作&
等同于disown
立即调用它。
尝试:
user@host:~$ read < <( sleep 10 & echo $! )
user@host:~$ echo $REPLY
28677
并且您已经隐藏了输出和PID。请注意,您仍然可以从$ REPLY 检索PID