2012-04-17 15 views
10

estoy Configuración de la pronta zsh y he encontrado lo siguiente para verificar si hay trabajos en segundo plano:pronta zsh - comprobar si hay trabajos en segundo plano

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 

El problema que estoy enfrentando es que el el código parece ser evaluado solo cuando abro una nueva sesión en lugar de después de cada comando, lo que hace que sea inútil. ¿Cómo puedo tener number_jobs reevaluado después de cada comando?

Respuesta

24

zsh tiene una secuencia de solicitud especial, como operador C ternario. La siguiente construcción significa que si hay uno o más trabajos, imprima su número o imprima nada:

%(1j.%j.) 
+0

¡Funciona maravillosamente! Gracias. –

+0

¿La parte 1j indica "si hay un trabajo" o "si hay más de un trabajo"? (disculpe mi ignorancia de C, soy nuevo en todo esto) –

+0

cualquier cantidad de trabajos (1, 2, más) – yazu

Cuestiones relacionadas