Відповіді:
Вони мають розрізняти поточну та попередню роботу; остання робота і друга остання робота для більш ніж двох робіт, з +останньою і -для другої останньої.
Від 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]-