Bash Script Yazmaya Giriş
Alex Scriven
Data Scientist
Bash'te temel bir IF ifadesi şu yapıya sahiptir:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
İki ipucu:
]; koyunIF içinde basit bir string karşılaştırması yapabiliriz:
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
'A eşit değil' için != de kullanabilirsiniz
Aritmetik IF ifadeleri çift parantez yapısını kullanabilir:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Aritmetik IF ifadeleri ayrıca köşeli parantez ve aritmetik bayraklar da kullanabilir (>, <, =, != yerine):
-eq-ne-lt-le-gt-geSon örneği köşeli parantezle yeniden oluşturalım:
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash, aşağıdaki gibi çeşitli dosya bayrakları da sunar:
-e dosya varsa-s dosya varsa ve boyutu sıfırdan büyükse-r dosya varsa ve okunabilirse-w dosya varsa ve yazılabilirseVe daha fazlası:
Koşulları birleştirmek (VE) veya VEYA kullanmak için şu semboller kullanılır:
&& VE için|| VEYA içinBash'te koşulları şu şekilde zincirleyebilirsiniz:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
Ya da çift köşeli parantez kullanabilirsiniz:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
Köşeli parantezleri kaldırarak pek çok komut satırı programını doğrudan koşulda kullanabilirsiniz.
Örneğin, words.txt dosyasında 'Hello World!' varsa:
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
Koşul için kabuk içinde kabuk da çağırabilirsiniz.
Aynı sonucu üretecek şekilde son örneği yeniden yazalım.
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Bash Script Yazmaya Giriş