Bash Scripting परिचय
Alex Scriven
Data Scientist
Python:
for x in range(3):
print(x)
0
1
2
R:
for (x in seq(3)){
print(x)
}
[1] 1
[1] 2
[1] 3
Bash में बेसिक स्ट्रक्चर काफ़ी मिलता-जुलता है:
for x in 1 2 3do echo $x done
1
2
3
Bash में नंबर रेंज बनाने का आसान तरीका 'brace expansion' है:
{START..STOP..INCREMENT}for x in {1..5..2}do echo $x done
1
3
5
FOR लूप लिखने का एक और सामान्य तरीका 'three expression' सिंटैक्स है.
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
Bash में * symbol के साथ pattern-matching expansions भी for लूप में हो सकते हैं, जैसे किसी directory की files.
उदाहरण के लिए, मान लीजिए फ़ोल्डर /books में दो text documents हैं:
for book in books/*
do
echo $book
done
books/book1.txt
books/book2.txt
याद है $() notation से shell-within-a-shell बनाना?
इसे आप for लूप में in-place भी बुला सकते हैं!
मान लीजिए फ़ोल्डर स्ट्रक्चर ऐसा है:

हम shell-within-a-shell के आउटपुट पर लूप चला सकते हैं:
for book in $(ls books/ | grep -i 'air')do echo $book done
AirportBook.txt
FairMarketBook.txt
FOR लूप जैसा ही, पर इसमें हर iteration पर एक condition जाँची जाती है.
जब तक condition सही है, iterations चलते हैं!
for की जगह while लिखें-le)&& (AND) या || (OR) का उपयोग करें, जैसे 'IF' statements मेंएक सरल उदाहरण:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
अगर break condition कभी पूरी न हो, तो infinite WHILE लूप से सावधान रहें.
x=1
while [ $x -le 3 ];
do
echo $x
# x को increment न करें. यह कभी 3 तक नहीं पहुँचेगा!
# ((x+=1))
done
यह 1 को हमेशा प्रिंट करता रहेगा!
Bash Scripting परिचय