2012-04-17 12 views
10

sto Personalizzazione del prompt dei zsh e ho trovato il seguente per verificare se ci sono processi in background:pronta zsh - controllando se ci sono processi in background

if [[ $(jobs | wc -l) -gt 0 ]]; then # has background job(s) 
    number_jobs='J:${cyan}%j${no_color}' 
else # no background job(s) 
    number_jobs="" 
fi 

Il problema che sto affrontando è che la il codice sembra essere valutato solo quando apro una nuova sessione piuttosto che dopo ogni comando rendendolo piuttosto inutile. Come posso rivedere number_jobs dopo ogni comando?

risposta

24

zsh ha una sequenza di richiesta speciale, come C operatore ternario. La costruzione di sotto significa che se ci sono uno o più posti di lavoro quindi stampare il loro numero o stampare nulla:

%(1j.%j.) 
+0

funziona meravigliosamente! Grazie. –

+0

Lo stato porzione 1j "se c'è un lavoro" o "se ci sono più lavori"? (scusa la mia ignoranza di C, sono nuovo di tutto questo) –

+0

qualsiasi numero di lavori (1, 2, altro) – yazu

Problemi correlati