for
यदि कोई in value1 value2...
बॉर्न-जैसे गोले में कोई भाग निर्दिष्ट नहीं किया गया है तो स्थितिगत मापदंडों पर लूप लूप करें ।
70 के दशक के उत्तरार्ध से बॉर्न शेल में यह पहले से ही मामला था, हालांकि बॉर्न शेल में, आपको इसे छोड़ना होगा ;
(आप for i do
कुछ पुराने ऐश संस्करणों को छोड़कर जहां आपको पहले एक नई पंक्ति की आवश्यकता है do
) का उपयोग कर सकते हैं ।
देखें कि लूप के लिए बैश में "डू" कीवर्ड का उद्देश्य क्या है? अधिक आश्चर्यजनक रूपांतरों सहित अधिक जानकारी के लिए।
करते हुए:
for i
do
something with "$i"
done
अच्छा अभ्यास है। यह आमतौर पर समकक्ष की तुलना में थोड़ा अधिक पोर्टेबल / विश्वसनीय है:
for i in "$@"; do
something with "$i"
done
जिसके लिए बॉर्न शेल, ksh88 के पास कुछ शर्तों के तहत कुछ मुद्दे हैं (जैसे $#
कि बॉर्न शेल के कुछ संस्करणों में जब 0 होता है (जो ${1+"$@"}
इसके बजाय "$@"
काम कर सकता है) या जब $IFS
बॉर्न और ksh88 में स्पेस कैरेक्टर नहीं होता है), या जब nounset
विकल्प सक्षम है $#
सहित कुछ गोले के कुछ संस्करणों में 0 हैbash
( फिर से साथ ${1+"$@"}
के रूप में एक काम के आसपास )।