Contoh Bash If-then-Else

Bash If Then Else Example



Dalam pelajaran ini, kita akan melihat bagaimana kita dapat menggunakan pernyataan If-then-Else dalam skrip lingkungan Bash yang kita tulis. Pernyataan If-then-Else adalah alat yang berguna untuk menyediakan cara untuk menentukan jalur tindakan skrip ketika beberapa kondisi terpenuhi. Mari kita lihat apa sintaks untuk pernyataan If-then-Else:

jikaBEBERAPA-PERINTAH;
kemudianMAKA-PERINTAH;
lainELSE-COMMAND;
menjadi

Pada perintah di atas yang ditunjukkan, jika BEBERAPA-PERINTAH ditemukan benar atau status pengembaliannya ditemukan 0, maka PERINTAH-KEMUDIAN akan dieksekusi. Jika tidak demikian, ELSE-COMMANDS akan dieksekusi. Dalam SOME-COMMANDS, kita biasanya melakukan perbandingan String atau perbandingan nilai dalam bentuk bilangan bulat. Kami juga dapat melakukan banyak operasi yang melibatkan file. Mari kita lihat beberapa contoh perintah utama yang digunakan terutama saat bekerja dengan kondisi berbasis file:







Utama Arti
[ -ke ] Mengembalikan nilai true ketika FILE ada.
[-B] Mengembalikan nilai true ketika FILE ada & merupakan file khusus blok.
[-C] Mengembalikan nilai true ketika FILE ada & merupakan file khusus karakter.
[ -D ] Mengembalikan nilai true ketika FILE ada & adalah direktori.
[ -Dan ] Mengembalikan nilai true ketika FILE ada.
[ -F ] Mengembalikan nilai true ketika FILE ada & merupakan file biasa.
[ -G ] Mengembalikan nilai true ketika FILE ada & bit SGID-nya disetel.
[ -H ] Mengembalikan nilai true ketika FILE ada & merupakan tautan simbolis.
[-k] Mengembalikan nilai true ketika FILE ada & bit lengketnya disetel.
[ -P ] Mengembalikan nilai true ketika FILE ada & adalah pipa bernama (FIFO).
[ -R ] Mengembalikan nilai true ketika FILE ada & dapat dibaca.
[ -S ] Mengembalikan nilai true ketika FILE ada dan memiliki ukuran lebih besar dari nol.
[ -T ] Mengembalikan nilai true ketika deskriptor file FD terbuka & merujuk ke terminal.
[-u] Mengembalikan nilai true ketika FILE ada & bit SUID (set ID pengguna)-nya disetel.
[ -di dalam ] Mengembalikan nilai true ketika FILE ada & dapat ditulis.
[-x] Mengembalikan nilai true ketika FILE ada & dapat dieksekusi.
[-HAI] Mengembalikan nilai true ketika FILE ada & dimiliki oleh ID pengguna yang efektif.
[ -G ] Mengembalikan nilai true ketika FILE ada & dimiliki oleh ID grup yang efektif.
[ -NS ] Mengembalikan nilai true ketika FILE ada & merupakan tautan simbolis.
[ -N ] Mengembalikan nilai true ketika FILE ada & telah dimodifikasi sejak terakhir kali dibaca.
[ -S ] Mengembalikan nilai true ketika FILE ada & adalah soket.

THEN-COMMANDS dan ELSE-COMMANDS dapat berupa operasi UNIX yang valid atau program yang dapat dieksekusi. Perhatikan bahwa kemudian dan menjadi perintah dipisahkan oleh titik koma karena dianggap sebagai elemen skrip yang sepenuhnya terpisah.



Contoh Sederhana If-then-Else

Mari kita mulai pelajaran kita dengan contoh yang sangat sederhana dengan pernyataan If-then-Else.
Berikut adalah contoh programnya:



Jika Contoh

Jika Contoh





Berikut adalah output yang kami lihat ketika kami menjalankan skrip kami:

$. ifelse1.sh
Nilainya sama!
$

Menggunakan argumen baris perintah

Kita juga dapat menggunakan argumen baris perintah dalam skrip kita dan menggunakan jumlah argumen dan nilai itu sendiri sebagai kondisi dalam pernyataan IF yang kita definisikan. Kami pertama-tama mendefinisikan file teks dengan konten berikut:



Nama saya LinuxHint. Saya suka server, terutama yang Ubuntu. Mereka sangat
terminal!

Sekarang, kita dapat menulis skrip yang menemukan apakah sebuah kata muncul dalam file teks atau tidak. Mari kita tentukan skripnya sekarang:

dibuang 'Menemukan $1 dalam $2'
pegangan $1 $2
jika [ $? -lahir 0 ]
kemudian
dibuang '$1 ​​tidak ditemukan dalam berkas $2.'
lain
dibuang '$1 ​​ditemukan dalam berkas $2.'
menjadi
dibuang 'Skrip selesai.'

Skrip ini sangat dinamis. Itu menganggap kata untuk menemukan dan file untuk mencari dari baris perintah itu sendiri. Sekarang, kami siap menjalankan skrip kami:

. ifelse2.sh suka hello.txt

Kita akan melihat output seperti:

Menemukan cintadi dalamhalo.txt
cinta ditemukandi dalam mengajukanhalo.txt.
Skrip selesai.

Memeriksa jumlah argumen baris perintah

Di dalam pernyataan IF, kita bahkan dapat memeriksa berapa banyak argumen baris perintah yang diteruskan ke perintah sehingga kita dapat bertindak berdasarkan hal yang sama:

menghitung=$ #
jika [ ! $hitung -gt 1 ]
kemudian
dibuang 'Tidak cukup argumen'
lain
dibuang 'Kerja yang baik!'
menjadi

Mari kita jalankan skrip ini sekarang, kita akan melihat output berikut:

Argumen baris perintah

Argumen baris perintah

Pernyataan Jika-Maka-Elif-Else

Kami juga dapat memiliki beberapa pernyataan IF di blok yang sama untuk mempersempit jalur keputusan yang diambil program kami untuk menjalankan perintah yang kami tetapkan. Berikut adalah sintaks untuk mendefinisikan beberapa pernyataan IF dalam skrip kami:

jikaUJI-PERINTAH;
kemudian
HASIL-PERINTAH;
elif
LAIN-PERINTAH;
kemudian
LAIN-HASIL-PERINTAH;
lain
PERINTAH-ALTERNATIF;
menjadi

Ini terlihat cukup akrab dan mudah untuk ditindaklanjuti juga. Mari kita definisikan contoh sederhana untuk menetapkan cara kerja pohon:

menghitung=$ #
jika [ $hitung -persamaan 1 ]
kemudian
dibuang 'Hanya satu argumen yang ditemukan.'
elif [ $hitung -persamaan 2 ]
kemudian
dibuang 'Lebih baik, dua argumen ditemukan.'
lain
dibuang 'Kerja bagus, banyak argumen ditemukan!'
menjadi

Inilah yang kami dapatkan kembali dengan perintah ini:

Jika Kemudian Elif Contoh lain

Jika Kemudian Elif Contoh lain

Menggunakan pernyataan kasus

Pernyataan IF-ELSE berguna ketika Anda memiliki daftar besar opsi yang perlu Anda putuskan. Tetapi jika Anda ingin melakukan tindakan hanya dalam beberapa kasus yang sama persis dengan hasilnya, kami juga dapat menggunakan pernyataan CASE dalam skrip Bash. Sintaksnya terlihat seperti:

kasusEKSPRESIdi dalamKASUS 1)PERINTAH-UNTUK-EKSEKUSI;
KASUS2)PERINTAH-UNTUK-EKSEKUSI;
KASUS2)PERINTAH-UNTUK-EKSEKUSI;
...)PERINTAH-UNTUK-EKSEKUSI;
*)PERINTAH-UNTUK-EKSEKUSI;
esac

Kasus terakhir dengan * bertindak sebagai kasus default dan akan dieksekusi ketika tidak ada kasus yang ditentukan di atas ditemukan cocok.

Mari kita cepat membuat contoh sederhana menggunakan pernyataan CASE:

kasus '$1' di dalam
1)
dibuang 'Nilainya adalah 1.'
;;
2)
dibuang 'Nilainya adalah 2.'
;;
3)
dibuang 'Nilainya adalah 3.'
;;
*)
dibuang 'Nilai lain berlalu.'
esac

Setiap pernyataan CASE diakhiri oleh ;; (tanda titik koma ganda). Inilah yang kami dapatkan kembali dengan perintah ini:

Contoh KASUS

Contoh KASUS

Kesimpulan

Dalam pelajaran ini, kita melihat bagaimana kita dapat menggunakan pernyataan IF-ELSE, IF-THEN-ELIF dan CASE dalam skrip Bash yang kita definisikan untuk mengambil tindakan spesifik berdasarkan nilai-nilai yang ada dalam program kita atau diteruskan oleh pengguna menggunakan posisi parameter.