É possível personalizar o prompt para mostrar se existem trabalhos em segundo plano?

5

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

Diga se o aviso foi ...

$

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

2 $
    
por paradroid 04.04.2012 / 21:09

1 resposta

18

Coloque \j no seu prompt. Do manual do bash :

\j The number of jobs currently managed by the shell

Lembre-se de que os prompts não funcionam e que os trabalhos podem ser concluídos a qualquer momento, por isso, se você tiver deixado o terminal ocioso, será necessário exibir novamente o prompt.

Com o custo de exigir um processo extra apenas para imprimir o seu prompt, você pode fazer com que o \j apareça somente se existir algum trabalho.

PROMPT_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '
    
por 04.04.2012 / 21:17