2012-04-17 24 views
10

मैं अपने zsh शीघ्र अनुरूपण रहा हूँ और पाया है कर रहे हैं कि क्या कोई पृष्ठभूमि नौकरियां हैं जाँच करने के लिए निम्नलिखित:zsh शीघ्र - जाँच अगर कोई पृष्ठभूमि नौकरियों

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 

समस्या का सामना करना पड़ रहा हूँ वह यह है कि कोड का मूल्यांकन केवल तब किया जाता है जब मैं प्रत्येक कमांड को इसके बजाय बेकार बनाने के बजाए नया सत्र खोलता हूं। मैं प्रत्येक आदेश के बाद number_jobs का फिर से मूल्यांकन कैसे कर सकता हूं?

उत्तर

24

zsh का एक विशेष त्वरित अनुक्रम है, जैसे सी टर्नरी ऑपरेटर। नीचे निर्माण का मतलब है कि यदि एक या अधिक नौकरियां हैं तो उनके नंबर को मुद्रित करें या कुछ भी प्रिंट न करें:

%(1j.%j.) 
+0

अद्भुत काम करता है! धन्यवाद। –

+0

क्या 1j भाग राज्य "यदि कोई नौकरी है" या "यदि एक से अधिक नौकरियां हैं"? (सी की मेरी अज्ञानता से बहाना, मैं इन सब के लिए नया हूं) –

+0

नौकरियों की संख्या (1, 2, और अधिक) – yazu

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^