bash: mostra nomes de jobs em segundo plano no prompt do bash

0

Seria legal se o prompt do bash pudesse ser usado como uma mini barra de tarefas.

O prompt do bash (PS1) pode mostrar os nomes dos trabalhos listados no comando jobs?

american-ninja-warrior
fonte
Você pode colocar o que quiser em PS1, Incluindo $(jobs|Filter), Onde Filter massages a saída em qualquer formato que você deseja. Para obter tudo em uma linha use echo $($(jobs|Filter)). Você pode, claro, adicionar todos os outros caracteres que você usaria normalmente em PS1, mas você devo use aspas simples ao atribuí-lo, para garantir que o comando incorporado seja expandido quando o prompt for emitido, em vez de quando a variável for definida.
AFH

Respostas:

0

AFH no comentário dá-lhe os blocos de construção. Aqui está um exemplo de como obter as cotações corretas.

como "nome do trabalho", escolho o nome do comando do trabalho (a primeira palavra depois de "Running"):

PS1='$(echo $(jobs | awk '\''/Running/{print "[" $3 "]"}'\''))$ '

E ao tentar isso com dois comandos de segundo plano, e apenas digitando "enter" algumas vezes para ver o prompt mudando:

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