Відповіді:
Вони мають розрізняти поточну та попередню роботу; остання робота і друга остання робота для більш ніж двох робіт, з +
останньою і -
для другої останньої.
Від man bash
:
На попереднє завдання можна посилатися за допомогою
%-
. Якщо є лише одна робота,%+
і%-
їх можна використовувати як для позначення цієї роботи. У висновку, що стосується завдань (наприклад, вихід команди команд), поточне завдання завжди позначено символом a+
, а попереднє завдання - a-
.
$ sleep 5 &
[1] 21795
$ sleep 5 &
[2] 21796
$ sleep 5 &
[3] 21797
$ sleep 5 &
[4] 21798
$ jobs
[1] Running sleep 5 &
[2] Running sleep 5 &
[3]- Running sleep 5 &
[4]+ Running sleep 5 &
$
[1] Done sleep 5
[2] Done sleep 5
[3]- Done sleep 5
[4]+ Done sleep 5
Я здогадуюсь, на яку ви звертаєтесь, коли ви перевіряєте роботу через $jobs
. Однак, як ви, напевно, вже знаєте, n
позначає роботу №. [n] +
Чи означає остаточну роботу , яка називалася.
[n] -
позначає друге за останнім завдання, яке викликається.
Наприклад:
chris@chris-VirtualBox:~$ sleep 30 &
[1] 904
chris@chris-VirtualBox:~$ sleep 50 &
[2] 972
chris@chris-VirtualBox:~$ jobs
[1]- Running sleep 30 &
[2]+ Running sleep 50 &
Ось чому в цьому випадку наше sleep 50 &
останнє: [2]+
і sleep 30 &
є другим за останнім:[1]-