当我查看jobs -x
解释时,它说:
如果提供了 -x 选项,作业将用相应的进程组 ID 替换命令或参数中找到的任何作业规范,并执行命令、向其传递参数、返回其退出状态。
如果没有例子,这个解释是极其不充分的。如果可以的话,你能举一个x
现实生活中“ ”选项用法的例子吗?我们什么时候需要这些选项?
答案1
例子:
$ sleep 300 &
[1] 16012
$ echo %1
%1
$ jobs -x echo %1
16012
这%1
是工作规范。该数字是[1]
在作业创建后立即显示的。 withoutjobs -x
%1
只是一个字符串,因此echo %1
打印该字符串。jobs -x
在运行之前将 jobspec 替换为相应的进程组 ID echo
。
如果你想对进程组做一些事情,jobs -x
一种方法是替换正确的ID。
我的测试表明,如果作业不存在,%1
则将保持文字状态,并且无论如何都会执行命令。jobs -x
在这种情况下,我没有找到任何方法可以自行失败,所以我认为命令(或整个脚本)应该准备好以某种方式处理它(例如,失败而不会造成任何损害)。