Bash Scripting - Variables, Arrays, If-Then-Else
İçindekiler:
ifDeyimiif..elseBildirimiif..elif..elseBildirimi- İfadeler iç içe yerleştirilmişse
- Çoklu Koşullar
- Test Operatörleri
- Sonuç
Karar verme, bilgisayar programlamanın en temel kavramlarından biridir. Diğer herhangi bir programlama dilinde olduğu gibi,
if
,
if..else
,
if..elif..else
ve Bash içindeki ifadeler belirli bir koşula bağlı olarak kod yürütmek için kullanılabilirse.
Bu öğreticide, Bash
if
ifadelerinin temelleri hakkında size yol göstereceğiz ve bunları kabuk komut dosyalarınızda nasıl kullanacağınızı göstereceğiz.
if
Deyimi
Şartlı koşulların farklı formları olabilirse Bash. En temel
if
ifadesi aşağıdaki formu alır:
if TEST-COMMAND then STATEMENTS fi
if
ifadesi,
if
anahtar sözcüğünden sonra koşullu ifade ve
then
anahtar sözcüğüyle başlar. Deyim
fi
anahtar sözcüğüyle biter.
TEST-COMMAND
True
değerlendirilirse,
STATEMENTS
yürütülür.
TEST-COMMAND
,
False
TEST-COMMAND
döndürürse hiçbir şey olmaz,
STATEMENTS
yoksayılır.
Genel olarak, her zaman kodunuzu girintilemek ve kod bloklarını boş satırlarla ayırmak iyi bir uygulamadır. Çoğu kişi 4 boşluklu veya 2 boşluklu girinti kullanmayı seçer. Girintiler ve boş satırlar kodunuzu daha okunaklı ve düzenli hale getirir.
Belirli bir sayının 10'dan büyük olup olmadığını kontrol eden aşağıdaki örnek komut dosyasına bakalım.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Kodu bir dosyaya kaydedin ve komut satırından çalıştırın:
bash test.sh
Komut dosyası sizden bir sayı girmenizi ister. Örneğin, 15 girerseniz,
test
komutu
true
değerlendirilir, çünkü 15 10'dan büyüktür ve
then
yan tümcesinin içindeki
echo
komutu yürütülür.
The variable is greater than 10.
if..else
Bildirimi
Bash
if..else
deyimi aşağıdaki formu alır:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
TEST-COMMAND
True
değerlendirilirse,
STATEMENTS1
yürütülür. Aksi takdirde,
TEST-COMMAND
False
döndürürse,
STATEMENTS2
yürütülür. İfadede yalnızca bir yan tümceye sahip olabilirsiniz.
Önceki örnek betiğe
else
cümle ekleyelim:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
if..elif..else
Bildirimi
Bash
if..elif..else
deyimi aşağıdaki formu alır:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
TEST-COMMAND1
True
değerlendirilirse,
STATEMENTS1
yürütülür.
TEST-COMMAND2
True
değerlendirilirse,
STATEMENTS2
yürütülür. Test komutlarının hiçbiri
True
değerlendirilmezse,
STATEMENTS2
yürütülür.
elif
bir veya daha fazla
elif
cümlesi olabilir.
else
yan tümcesi isteğe bağlıdır.
Koşullar sırayla değerlendirilir. Bir koşul
True
değerini döndürdüğünde kalan koşullar gerçekleştirilmez ve program denetimi
if
ifadelerinin sonuna gider.
Bir önceki betiğe bir
elif
cümlesi ekleyelim:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
İfadeler iç içe yerleştirilmişse
Bash,
if
ifadeleri içinde
if
ifadelerini iç içe yerleştirmenize izin verir. Birden fazla
if
ifadesini başka bir
if
ifadesinin içine yerleştirebilirsiniz.
Aşağıdaki komut dosyası üç sayı girmenizi ister ve üç sayı arasında en büyük sayıyı yazdırır.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
Çıktı şöyle görünecektir:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
Nested
if
ifadelerini kullanmak yerine genellikle case ifadesini kullanmak daha verimlidir.
Çoklu Koşullar
Mantıksal
OR
ve
AND
işleçleri,
if
ifadelerinde birden çok koşul kullanmanıza izin verir.
Üç sayı arasındaki en büyük sayıyı yazdırmak için komut dosyasının başka bir sürümü. Bu sürümde, nested
if
ifadeleri yerine mantıksal
AND
(
&&
) operatörünü kullanacağız.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
Test Operatörleri
Bash'te,
test
komutu aşağıdaki sözdizimi formlarından birini alır:
test EXPRESSION]
Test ifadesini reddetmek için mantıksal
NOT
(
!
) Operatörünü kullanın. Dizeleri karşılaştırırken, herhangi bir kelime bölme veya globbing sorununu önlemek için her zaman tek veya çift tırnak kullanın.
Aşağıda en yaygın kullanılan operatörlerden bazıları verilmiştir:
-
-nVAR-VARuzunluğu sıfırdan büyükse doğrudur.-zVAR- VAR boşsa doğrudur.STRING1 = STRING2- Doğru [STRING1 ve STRING2 eşittir.STRING1 != STRING2- Gerçek STRING1 ve STRING2 eşit değil.INTEGER1 -eq INTEGER2- Gerçek INTEGER1 ve INTEGER2 eşittir.INTEGER1 -gt INTEGER2- Gerçek INTEGER1, INTEGER2'den büyük.INTEGER1 -lt INTEGER2- Gerçek INTEGER1, INTEGER2'den düşük.INTEGER1 -ge INTEGER2- Gerçek INTEGER1, INTEGER2 değerine eşit veya daha büyük.INTEGER1 -le INTEGER2- Gerçek INTEGER1, INTEGER2 değerine eşit veya daha düşük.-hFILE- DOSYA varsa ve sembolik bir bağlantıysa doğrudur.-rFILE- DOSYA varsa ve okunabilirse doğrudur.-wFILE- DOSYA varsa ve yazılabilirse doğrudur.-xFILE- FILE varsa ve çalıştırılabilirse doğrudur.-dFILE- DOSYA varsa ve bir-ddoğrudur.-eFILE- FILE, türden (düğüm, dizin, soket vb.) bağımsız olarak varsa ve bir dosyaysa doğrudur.-fFILE- DOSYA varsa ve normal bir dosyaysa (dizin veya aygıt değil) doğrudur.
Sonuç
if..elif..else
,
if..else
ve
if..elif..else
ifadeleri, Bash komut dosyasının yürütme akışını belirli koşulları değerlendirerek kontrol etmenizi sağlar.
Birinin Else's PC'sinde Nasıl Sorun Gideririm?
BobJam'ın sorusunu, ilk başta yanıt hattı forumuna gönderdim, kız kardeşinin uzaktan kontrolünü sağladım. PC, teknik bir problemle ona yardımcı olacak.
Dropbox Tüm Bilgisayarlarınızda Çalışmanızı Sağlar - Veya Herkes Else's
Windows 7.5 Geliştirmek Mango Uygulamaları, Bölüm 6: Anahtar Deyimi
Bu ders, C # dilinde "if ifadesi" ne alternatifler öğretir ve nasıl bunları kullanmak için.







