bash: показывать имена фоновых заданий в приглашении bash

384
american-ninja-warrior

Было бы здорово, если бы приглашение bash можно было использовать в качестве мини-панели задач.

Может ли приглашение bash (PS1) отображать имена заданий, перечисленных в команде jobs?

0
Вы можете поместить все, что вам нравится, в `PS1`, включая` $ (jobs | Filter) `, где` Filter` массирует вывод в любой формат, который вы захотите. Чтобы получить все в одной строке, используйте `echo $ ($ (jobs | Filter))`. Конечно, вы можете добавить все другие символы, которые вы обычно используете в `PS1`, но вы ** должны ** использовать ** одинарные кавычки при его назначении, чтобы убедиться, что встроенная команда раскрывается при выдаче приглашения, а не когда переменная установлена. AFH 8 лет назад 0

1 ответ на вопрос

0
PBI

AFH в комментарии дает вам строительные блоки. Вот один пример того, как получить правильное цитирование.

в качестве «имени задания» я выбираю имя команды задания (первое слово после «Выполнение»):

PS1='$(echo $(jobs | awk '\''/Running/'\''))$ ' 

И при попытке сделать это с помощью двух фоновых команд и просто набрать «enter» несколько раз, чтобы увидеть изменение подсказки:

$ sleep 4 & sleep 2 & [1] 7222 [2] 7223 [sleep] [sleep]$  [sleep] [sleep]$  [2]+ Done sleep 2 [sleep]$  [1]+ Done sleep 4 $