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?
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?
Respostas:
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
$
PS1
, Incluindo$(jobs|Filter)
, OndeFilter
massages a saída em qualquer formato que você deseja. Para obter tudo em uma linha useecho $($(jobs|Filter))
. Você pode, claro, adicionar todos os outros caracteres que você usaria normalmente emPS1
, 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.