11
पर टिप्पणी की है, मैं एक फाइल में लाइनों पर लूप कर रहा हूं। मुझे बस "#" से शुरू होने वाली लाइनों को छोड़ना होगा। मैं यह कैसे कर सकता हूं?बैश लूप स्किप ने
#!/bin/sh
while read line; do
if ["$line doesn't start with #"];then
echo "line";
fi
done < /tmp/myfile
किसी भी मदद के लिए धन्यवाद!
तुम भी कुछ 'expr' या प्रत्यय हटाने (जैसे,' [$ {-z "के साथ बहुत चालाक कर सकता है लाइन %% # *} "]'), लेकिन मुझे लगता है कि 'केस' विकल्प की तुलना में ये समान या कम पठनीय होंगे। – pilcrow
लाइनों को भी पट्टी करने के लिए जहां व्हाइटस्पेस (केवल) '#' से पहले है, इसके बजाय 'grep -v'^\ s * # ' tmp/myfile' का उपयोग करें - यह' केस 'समाधान के अनुरूप है, जिसे' पढ़ा गया है ' 'स्ट्रिप्स अग्रणी और पीछे की ओर सफेद जगह। – mklement0
एक और विकल्प (यदि किसी कारण से कोई व्यक्ति 'grep' से बचना चाहता था) हो सकता है' अगर [[$ line = ~^#]]; फिर जारी रखें; fi'। –