職位編號旁的「+」和「-」號

職位編號旁的「+」和「-」號

bash 手冊頁說

在與作業相關的輸出中(例如,jobs 指令的輸出),目前作業總是用 + 標記,前一個作業用 - 標記。單一%(沒有附帶的工作規範)也指目前工作。

在我的以下一系列命令中,之後是 2 > /dev/null &,我預計工作 [2] 是當前工作而不是工作 [1]。

也在命令的末尾是 3 > /dev/null &我期望 jobs 命令輸出如下所示:

[1] 已停止
[2]- 正在運行
[3]+ 正在運行

我缺什麼?

$ yes 1 > /dev/null
^Z
[1]+  Stopped                 yes 1 > /dev/null
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
$ yes 2 > /dev/null &
[2] 3082
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
[2]-  Running                 yes 2 > /dev/null &
$ yes 3 > /dev/null &
[3] 3116
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
[2]   Running                 yes 2 > /dev/null &
[3]-  Running                 yes 3 > /dev/null &

答案1

來自同一手冊頁:

[...]目前作業,這是最後一個在前台停止或在背景啟動的作業。

有點模稜兩可。你可以這樣理解:

  1. 以所有「作業在前台停止或在後台啟動時停止」為例......
  2. ....然後選擇“最後一個”。

但它是相當:

  1. 以「最後一份作業在前台時停止」為例;
  2. 但如果沒有這樣的作業,請選擇「最後一個在背景啟動的作業」。

相關內容