![bash: показывать имена фоновых заданий в командной строке bash](https://rvso.com/image/1481858/bash%3A%20%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%20%D1%84%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D1%85%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%B2%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5%20bash.png)
Было бы здорово, если бы командную строку bash можно было использовать в качестве мини-панели задач.
Может ли командная строка bash (PS1) отображать имена заданий, перечисленных в команде jobs?
решение1
AFH в комментарии дает вам строительные блоки. Вот один пример того, как правильно цитировать.
В качестве «имени задания» я выбираю командное имя задания (первое слово после «Running»):
PS1='$(echo $(jobs | awk '\''/Running/{print "[" $3 "]"}'\''))$ '
А если попробовать выполнить это с двумя фоновыми командами и просто нажать «enter» несколько раз, чтобы увидеть изменение приглашения:
$ sleep 4 & sleep 2 &
[1] 7222
[2] 7223
[sleep] [sleep]$
[sleep] [sleep]$
[2]+ Done sleep 2
[sleep]$
[1]+ Done sleep 4
$