ध्यान दें कि सिंटेक्स बॉर्न शेल से विरासत में मिला है।
चर नाम के बाद, आपके पास या तो in
तत्वों की सूची स्पष्ट रूप से दी जा सकती है, या do
स्थितिगत मापदंडों पर लूप करने के लिए।
for i in 1 2 3
do
echo "$i"
done
या
set 1 2 3
for i do
echo "$i"
done
do
दोनों मामलों में होने (भले ही यह पहले एक में सख्ती से आवश्यक नहीं है) एक अधिक सुसंगत वाक्य रचना के लिए बनाता है। यह भी while
/ until
छोरों के अनुरूप है जहां do
आवश्यक है।
while
cmd1
cmd2
do
cmd3
cmd4
done
आपको यह do
बताने की आवश्यकता है कि हालत आदेशों की सूची कहां समाप्त होती है।
ध्यान दें कि बॉर्न शेल ने समर्थन नहीं किया for i; do
। मानक के 2016 संस्करण तक वह सिंटैक्स भी POSIX नहीं था ( for i do
हमेशा POSIX रहा है; संबंधित ऑस्टिन समूह बग देखें )।
zsh
कुछ शॉर्टहैंड फॉर्म हैं जैसे:
for i in 1 2 3; echo $i
for i (1 2 3) echo $i
for ((i=1;i<=3;i++)) echo $i
या एक से अधिक चर के लिए समर्थन:
for i j (1 a 2 b) echo $i $j
(हालांकि आप उपयोग नहीं कर सकते in
या do
के स्थान पर चर नाम के रूप में j
ऊपर)।
शायद ही कभी दस्तावेज यहां तक कि अगर, सबसे बॉर्न की तरह गोले (बॉर्न, ksh, बैश, zsh, नहीं ash
है और न ही yash
) भी समर्थन करते हैं:
for i in 1 2 3; { echo "$i";}
बॉर्न शेल, ksh
और zsh
(लेकिन नहीं bash
) भी समर्थन करते हैं:
for i { echo "$i"; }
जबकि bash
, ksh
और zsh
(लेकिन बॉर्न शेल नहीं) समर्थन:
for i; { echo "$i"; }
सभी (बॉर्न, bash
, ksh
, zsh
) का समर्थन:
for i
{ echo "$i";}
ksh93
, bash
, zsh
का समर्थन:
for ((i=1;i<=3;i++)) { echo "$i"; }