我想知道为什么在这个例子中使用了代码块:
possibly_hanging_job & { sleep ${TIMEOUT}; eval 'kill -9 $!' &> /dev/null; }
这可能是这样写的(没有使用代码块)..right?
possibly_hanging_job & sleep ${TIMEOUT} eval 'kill -9 $!' &> /dev/null
将最后两个命令放在大括号中可以清楚地表明:“这些命令不仅仅是在长时间运行的进程可能会挂起后我们碰巧运行的两个附加命令;相反,它们是在我们继续执行shell脚本的其余部分之前正确关闭的积分.“如果作者写道:
command & a b c
a和b只是得到正确结束命令的一部分是不完全清楚的.通过这样写:
command & {a; b} c
作者使a和b存在为了使命令完全结束并在实际下一步骤c之前进行清理.