É possível personalizar o prompt para mostrar se há algum trabalho em segundo plano?

É possível personalizar o prompt para mostrar se há algum trabalho em segundo plano?

É possível personalizar o prompt do bash para mostrar se há algum trabalho em segundo plano? Acho fácil esquecer que existem trabalhos em segundo plano.

Diga se o prompt foi...

$

Existe uma maneira de mostrar o número de trabalhos em segundo plano? Por exemplo, se houvesse dois trabalhos em segundo plano enviados para segundo plano usando CTRL+Z, o prompt seria...

2 $

Responder1

Coloque \jseu prompt. Demanual do bash:

\j O número de trabalhos atualmente gerenciados pelo shell


Apenas lembre-se de que os prompts ficam obsoletos e os trabalhos podem terminar a qualquer momento; portanto, se você deixou o terminal ocioso, será necessário exibir novamente o prompt.


Ao custo de exigir um processo extra apenas para imprimir seu prompt, você pode fazer com que ele \japareça apenas se existir algum trabalho.

PROMPT_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '

Responder2

No zsh, você pode usar %jpara indicar o número de trabalhos e "%1(j.%j.)"mostrar o número de trabalhos se houver pelo menos um em execução e, caso contrário, não mostrar nada (em vez de 0). Por exemplo. RPROMPT="%1(j.%j.)"para mostrá-lo no prompt do lado direito.Mais informações no manualeesta resposta SO.

informação relacionada