ध्यान दें कि सिंटेक्स बॉर्न शेल से विरासत में मिला है।
चर नाम के बाद, आपके पास या तो 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"; }