मैं एक बैश स्क्रिप्ट लिखने की कोशिश कर रहा हूं, जिसमें एक फ़ंक्शन होता है .tar, जब एक दिया जाता है .tar.bz2, .tar.gzआदि। यह फ़ाइल को डिकम्प्रेस करने के लिए संबंधित स्विच के साथ टार का उपयोग करता है।
मैं प्रयोग कर रहा हूँ अगर elif तो बयान जो यह देखने के लिए फ़ाइलनाम का परीक्षण करता है कि यह किसके साथ समाप्त होता है और मैं इसे रेगेक्स मेटाचैकर का उपयोग करके मिलान करने के लिए नहीं प्राप्त कर सकता हूं।
कमांड लाइन पर मैं 'टेस्ट' का उपयोग कर रही स्क्रिप्ट को लगातार लिखने से बचाने के लिए, मैंने सोचा कि नीचे दिए गए कथन पर काम करना चाहिए, मैंने कोष्ठक, उद्धरण और मेटाकार्टर्स के हर संयोजन को संभव करने की कोशिश की है और अभी भी यह विफल रहता है।
test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $?
(this returns 1, false)
मुझे यकीन है कि समस्या एक सरल है और मैंने हर जगह देखा है, फिर भी मैं यह नहीं कर सकता कि यह कैसे करना है। क्या कोई जानता है कि मैं यह कैसे कर सकता हूं?