bash 中“jobs”命令的“x”选项的使用示例

bash 中“jobs”命令的“x”选项的使用示例

当我查看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在这种情况下,我没有找到任何方法可以自行失败,所以我认为命令(或整个脚本)应该准备好以某种方式处理它(例如,失败而不会造成任何损害)。

相关内容