आपकी जादुई यूनियन चीज़ अर्धविराम है ... और घुंघराले ब्रेसिज़:
{ cat wordlist.txt ; ls ~/folder/* ; } | wc -l
घुंघराले ब्रेसिज़ केवल कमांड को एक साथ समूहीकृत कर रहे हैं, ताकि पाइप का संकेत |संयुक्त आउटपुट को प्रभावित करे।
आप ()एक कमांड समूह के चारों ओर कोष्ठक का भी उपयोग कर सकते हैं , जो एक सब-कमांड में कमांड निष्पादित करेगा। यह घुंघराले ब्रेस के साथ मतभेदों का एक सूक्ष्म सेट है, उदाहरण के लिए निम्नलिखित प्रयास करें:
cd $HOME/Desktop ; (cd $HOME ; pwd) ; pwd
cd $HOME/Desktop ; { cd $HOME ; pwd ; } ; pwd
आप देखेंगे कि वर्तमान कार्यशील निर्देशिका सहित सभी पर्यावरण चर, कोष्ठक समूह से बाहर निकलने के बाद रीसेट हो जाते हैं, लेकिन कर्ली-ब्रेस समूह से बाहर निकलने के बाद नहीं।
अर्धविराम के लिए, विकल्पों में संकेत &&और ||संकेत शामिल हैं, जो सशर्त रूप से दूसरे आदेश को निष्पादित करेंगे, यदि पहला सफल है या यदि नहीं, क्रमशः, जैसे।
cd $HOME/project && make
ls $HOME/project || echo "Directory not found."