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
來自同一手冊頁:
[...]目前作業,這是最後一個在前台停止或在背景啟動的作業。
有點模稜兩可。你可以這樣理解:
- 以所有「作業在前台停止或在後台啟動時停止」為例......
- ....然後選擇“最後一個”。
但它是相當:
- 以「最後一份作業在前台時停止」為例;
- 但如果沒有這樣的作業,請選擇「最後一個在背景啟動的作業」。