Giriş
Sözdizimi (syntax) şöyle. Koşul yazıldıktan sonra ) karakteri ile kapatılır.
Şöyle yaparız.
Girdimiz bir koşula uyuyorsa otomatik olak break ile çıkar. Elimizde şöyle bir kod olsun. Eğer bunu cuma günü çalıştırırsak çıktı olarak "Tue|Wed|Thu|Fri" alırız. Kod otomatik olarak uyan koşuldan sonra break eder. İkinci Fri ile başlayan koşul işletilmez.
Örnek
Şöyle yaparız. [aA] a veya A ise anlamına gelir.
Şöyle yaparız.
Default durum için *) kullanılır. Şöyle yaparız.
Sözdizimi (syntax) şöyle. Koşul yazıldıktan sonra ) karakteri ile kapatılır.
case EXPRESSION in
CASE1) COMMAND-LIST;;
CASE2) COMMAND-LIST;;
... CASEN) COMMAND-LIST;;
esac
ÖrnekŞöyle yaparız.
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
Örnek - Otomatik Break VardırGirdimiz bir koşula uyuyorsa otomatik olak break ile çıkar. Elimizde şöyle bir kod olsun. Eğer bunu cuma günü çalıştırırsak çıktı olarak "Tue|Wed|Thu|Fri" alırız. Kod otomatik olarak uyan koşuldan sonra break eder. İkinci Fri ile başlayan koşul işletilmez.
#!/bin/bash
NOW=$(date +"%a")
case $NOW in
Mon)
echo "Mon";;
Tue|Wed|Thu|Fri)
echo "Tue|Wed|Thu|Fri";;
Fri|Sat|Sun)
echo "Fri|Sat|Sun";;
*) ;;
esac
Eğer ;; yerine ;;& kullanırsak otomatik break olmaz. Açıklaması şöyleUsing ;;& in place of ;; causes the shell to test
the next pattern list in the statement, if any, and execute any
associated list on a successful match
Şöyle yaparız#!/bin/bash
NOW=$(date +"%a")
case $NOW in
Mon)
echo "Mon";;
Tue|Wed|Thu|Fri)
echo "Tue|Wed|Thu|Fri";;&
Fri|Sat|Sun)
echo "Fri|Sat|Sun";;
*) ;;
esac
Eğer bunu cuma günü çalıştırırsak çıktı olarak
"Tue|Wed|Thu|Fri"
"Fri|Sat|Sun"
alırız.
Örnek
Şöyle yaparız. [aA] a veya A ise anlamına gelir.
case "$CODE" in
[aA] ) PN="com.tencent.ig" ;;
[bB] ) PN="com.vng.pubgmobile" ;;
[cC] ) PN="com.pubg.krmobile" ;;
[dD] ) PN="com.rekoo.pubgm" ;;
* ) printf '\a\t%s\n' 'ERROR!' 'CODE KOSONG' 'MELAKUKAN EXIT OTOMATIS' >&2
exit 1 ;;
esac
Örnek - TupleŞöyle yaparız.
grep -qw -- "$users" "$file1"; in_file1=$?
grep -qw -- "$users" "$file2"; in_file2=$?
case "${in_file1},${in_file2}" in
0,0) echo found in both files ;;
0,*) echo only in file1 ;;
*,0) echo only in file2 ;;
*) echo in neither file ;;
esac
Örnek - Default CaseDefault durum için *) kullanılır. Şöyle yaparız.
#!/bin/bash
case "$1" in
"cat"|"dog"|"mouse")
echo "dollar 1 is either a cat or a dog or a mouse"
;;
*)
echo "none of the above"
;;
esac
Hiç yorum yok:
Yorum Gönder