“kill %1”中的 %1 是什么意思?

“kill %1”中的 %1 是什么意思?

我知道$!存储了最后一个(后台)进程的 pid,但这是什么%1意思呢?我经常看到它和 一起出现kill,它的效果和 一样kill $!。有人能给我提示一下吗?(这么小的术语很难在谷歌上找到 :-/)

答案1

指示符%引用当前 shell 的作业列表中的作业,并返回 PID。尝试help jobs

答案2

你想要谷歌搜索的是man bash

在 shell 中,有多种方式可以引用作业。字符 % 引入作业名称。作业编号 n 可以用 %n 来引用。还可以使用启动作业的名称的前缀或使用出现在其命令行中的子字符串来引用作业。例如,%ce 引用已停止的 ce 作业。如果前缀与多个作业匹配,bash 将报告错误。另一方面,使用 %?ce 引用命令行中包含字符串 ce 的任何作业。如果子字符串与多个作业匹配,bash 将报告错误。符号 %% 和 %+ 引用 shell 的当前作业概念,它是最后一个在前台停止或在后台启动的作业。可以使用 %- 引用前一个作业。当只有当前作业时,%- 引用 shell 的当前作业概念。在与作业相关的输出中(例如,jobs 命令的输出),当前作业始终用 + 标记,而前一个作业用 - 标记。单个 %(没有附带作业说明)也指当前作业。

只需命名一个作业即可将其带入前台:%1 是 ''fg %1'' 的同义词,将作业 1 从后台带入前台。同样,''%1 &'' 在后台恢复作业 1,相当于 ''bg %1''。

总结: %1是第一份工作。

相关内容