当我在后台通过 启动命令时,command &
可以从变量中检索命令的进程 ID $!
。此值可以保存并在以后的命令中使用,例如kill
.
然而,一些内置插件,特别是fg
需要一个“jobspec”,它是一个特殊的 shell 东西,以%
. 因此,如果我启动一个后台命令,我可以在之后通过 将其置于前台command & fg %+
,因为%+
它是最近后台命令的作业规范。
如果我在后台启动两个命令,我可以使用 : 将第一个命令放在前台%-
,这是 jobspec 的先前%+
值 command1 & command2 & fg %-
。
但这不能概括为三个命令。通常需要的是能够为%nnn
刚刚在后台盯着的命令保存作业规范。这可以通过类似的东西来完成jobs | sed -e '$!d' -e 's/^\[\([0-9]\+].*$/%\1/
,但应该有比这更好的方法。