मैं एक छोटे से बैश पटकथा लिखी (टिप से शुरू) सभी मर्क्युरियल changesets खोजने के लिए स्ट्रिंग दिया गया तर्क होता है कि:बैश: CTRL-C होने पर इस स्क्रिप्ट को कैसे बाधित किया जाए?
#!/bin/bash
CNT=$(hg tip | awk '{ print $2 }' | head -c 3)
while [ $CNT -gt 0 ]
do
echo rev $CNT
hg log -v -r$CNT | grep $1
let CNT=CNT-1
done
अगर मैं मार Ctrl-C, अधिक बार नहीं द्वारा इसमें बाधा डालते हैं वर्तमान में निष्पादित आदेश "hg log" है और यह वह आदेश है जो बाधित हो जाता है, लेकिन फिर मेरी स्क्रिप्ट जारी है।
मैं तो की "एचजी लॉग ऑन" वापसी की स्थिति की जांच के बारे में सोच रहा था, लेकिन क्योंकि मैं इसे ग्रेप में पाइप कर रहा हूँ मैं भी यकीन है कि के रूप में कैसे इसके बारे में जाने के लिए नहीं कर रहा हूँ ...
कैसे करना चाहिए जब मैं बाधित होता हूं तो मैं इस स्क्रिप्ट से बाहर निकलने के बारे में जाता हूं? (बीटीडब्ल्यू मुझे नहीं पता कि वह स्क्रिप्ट क्या है जो मैं करना चाहता हूं, लेकिन यह नौकरी करता है और वैसे भी मुझे "बाधित" समस्या में दिलचस्पी है)
बहुत बहुत धन्यवाद, सभी को +1। ठीक काम करना :) – SyntaxT3rr0r
मुझे शायद यह इंगित करना चाहिए कि आर्किपू का उल्लेख किया गया $ PIPESTATUS और पाइपफेल विकल्प दोनों संस्करण संस्करण 3+ विशिष्ट हैं। वे अन्य गोले द्वारा समर्थित नहीं हैं। –
धन्यवाद, मेरे डेबियन लिनक्स पर मेरे पास वास्तव में बैश 3+ है लेकिन मेरे मैक पर यह बैश 2.05 है। – SyntaxT3rr0r