आपको बैश में लाइन नंबर कैसे मिलेगा जहां एक त्रुटि हुई?
उदाहरण
मैं यह बताने के लिए कि हम क्या चाहते हैं, यह बताने के लिए लाइन नंबरों के साथ निम्नलिखित सरल स्क्रिप्ट बनाते हैं। स्क्रिप्ट फ़ाइलों की प्रतिलिपि बनाएगी
cp $file1 $file2
cp $file3 $file4
जब cp
कमांड में से एक विफल हो जाता है तो फ़ंक्शन 1 से बाहर निकल जाएगा । हम फ़ंक्शन की क्षमता को लाइन नंबर (उदाहरण के लिए, 8 या 12) के साथ त्रुटि को प्रिंट करना चाहते हैं।
क्या यह संभव है?
नमूना लिपि
1 #!/bin/bash
2
3
4 function in_case_fail {
5 [[ $1 -ne 0 ]] && echo "fail on $2" && exit 1
6 }
7
8 cp $file1 $file2
9 in_case_fail $? "cp $file1 $file2"
10
11
12 cp $file3 $file4
13 in_case_fail $? "cp $file3 $file4"
14
set -x
और / या set -v
ट्रेस करने के लिए क्या निष्पादित किया गया है। आपने जो मांगा था, ठीक वैसा नहीं, लेकिन यह शायद मददगार भी होगा।