वहाँ कि मैं यहाँ पर चर्चा करना चाहते लाइन द्वारा एक फ़ाइल लाइन पढ़ने के दो तरीके हैं:बैश जबकि पाश है कि लाइन द्वारा फ़ाइल लाइन पढ़ता
#!/bin/bash
while read line
do
echo-e "$ line \ n"
done <file.txt
और
#!/bin/bash
exec 3<file.txt
while read line
do
echo-e "$ line \ n"
done
तो पहले संस्करण ठीक काम करता है लेकिन फ़ाइल के साथ लूप करते समय मैं काम करने की तंत्र को समझ नहीं पा रहा हूं। लेकिन दूसरे संस्करण की तंत्र मैं समझता हूं। लेकिन यहां मुझे समझ में नहीं आता कि यह क्यों लटका है और कुछ भी प्रिंट नहीं करता है।
करता है '<और 3'' read' लाइन काम पर? वास्तविक बोर्न शेल के बुरे पुराने दिनों में यह मामला होता था, कि लूप के चारों ओर हर बार पुनर्निर्देशन किया जाएगा, इसलिए आपको मजाकिया प्रभाव मिलते हैं (जैसे फ़ाइल प्रत्येक पुनरावृत्ति पर बंद हो रही है)। मैं अच्छी तरह से विश्वास कर सकता हूं कि तब से इसे संशोधित किया गया है ताकि चीजें थोड़ा और अधिक काम कर सकें। * एफडब्ल्यूआईडब्लू *: जब मैंने मैकोज़ एक्स पर 'बाश' की कोशिश की, तो: '' लाइन पढ़ने के दौरान
धन्यवाद जॉन, मैंने उपरोक्त लिपि के साथ प्रयास किया, यह मेरे मैक पर काम किया। http://cl.ly/ClDf लेकिन कुछ उपयोगी जानकारी है। मुझे याद है। मैं अभी भी बैश के लिए बहुत नया हूँ।अभी 'awk' और' sed' सीख रहा है। लेकिन बैश मूल बातें पर कुछ किताबें शुरू करेंगे। :) –
'read' कथन के बजाय 'done' कथन के बाद' <& 3' होने का उत्तर संपादित किया है। –