Panduan Pemula untuk Scripting Shell 4 Kondisi & Pernyataan Jika-Kalau
Kami telah membahas cukup dasar-dasar dalam panduan kami tentang skrip shell sehingga Anda harus merasa nyaman bereksperimen. Dalam angsuran minggu ini, kita akan menangani beberapa hal yang lebih menyenangkan, seperti kondisi dan pernyataan "jika-maka".
Apa Kondisi Itu?
Dalam bahasa sehari-hari, kami mengatakan bahwa kondisi adalah persyaratan yang harus dipenuhi untuk sesuatu terjadi. Agar laptop saya dapat terhubung ke internet, ada beberapa kondisi yang harus dipenuhi, seperti memiliki ISP, modem dan / atau router menyala, laptop saya menyala, dll. Ini sangat sederhana, dan jika ada dari persyaratan yang tidak terpenuhi, hasilnya - laptop saya terhubung ke internet - tidak terjadi.
Kondisi dalam ranah komputasi bekerja sama. Kami dapat menguji apakah suatu string cocok dengan string lain, apakah itu tidak cocok dengan string lain, atau bahkan jika ada. Demikian pula, kita dapat menguji argumen numerik untuk melihat apakah ada yang lebih dari, kurang dari, atau sama dengan yang lain. Untuk mendapatkan sesuatu terjadi setelah kondisi tes terpenuhi, kami menggunakan pernyataan "jika-maka". Formatnya cukup sederhana.
jika KONDISI
kemudian
command1
perintah2
...
perintah
fi
Jika Pernyataan
Mari kita jalankan skrip tes kecil cepat, oke?
jika menguji $ 1 -gt $ 2
kemudian
gema "$ 1 lebih besar dari $ 2"
fi
Anda akan melihat bahwa hanya ketika kondisi itu benar skrip akan menjalankan perintah berikut. Jika tidak, pernyataan "jika" akan keluar. Jika ada perintah setelah pernyataan "jika", maka perintah itu akan berjalan seperti biasa. Saya menambahkan baris berikut ke akhir skrip kami di atas untuk menggambarkan ini:
echo “Ini muncul setelah pernyataan if”
Berikut adalah beberapa operator numerik lain yang mungkin ingin Anda coba:
- -eq: sama dengan
- -ne: tidak sama dengan
- -lt: kurang dari
- -le: kurang dari atau sama dengan
- -gt: lebih besar dari
- -ge: lebih besar dari atau sama dengan
String Pengujian
Sekarang, jika kita memodifikasi baris pertama dari skrip kita menjadi ini:
jika tes $ 1 = $ 2
maka kondisi akan menguji apakah keduanya sama. Tapi ada tangkapan di sini !! Penggunaan tanda sama dengan (=) membandingkan dua string, dan bukan angka. Jika Anda ingin membandingkan angka, Anda harus menggunakan operator "-eq" sama seperti cara kami menggunakan "-gt" di atas.
Sekarang, mari kita buat modifikasi lain:
jika tes $ 1! = $ 2
Dimasukkannya tanda seru (!) Bertindak sebagai pengubah "tidak". Artinya, itu hanya menjalankan perintah berikut ketika kedua string tidak cocok.
Berikut daftar beberapa tes berbasis string yang dapat Anda gunakan:
- string: hanya menggunakan argumen dengan sendirinya menguji jika string tidak kosong (nol) atau tidak didefinisikan dalam beberapa cara
- -n string: ini akan menguji apakah string tidak kosong dan didefinisikan
- -z string: ini akan menguji apakah string kosong dan didefinisikan seperti itu
Apa Lagi Tentang Jika?
Saya akui, judul bagian itu jelas bukan kata-kata buruk. Oke, kita tahu cara menjalankan perintah jika tes benar, tetapi bagaimana jika kita ingin menjalankan perintah yang berbeda jika itu salah? Kita dapat dengan mudah menggabungkan keduanya dengan menambahkan bagian pada pernyataan "jika-maka" - "lain"!
jika KONDISI
kemudian
command1
perintah2
...
perintah
lain
command1
perintah2
...
perintah
fi
Mari kita membuat skrip sederhana.
Ada segalanya dengan lekukan yang tepat. Jika Anda melihat lebih dekat, Anda akan melihat bahwa kami menggunakan tanda kurung siku ([dan]) alih-alih perintah tes. Mereka secara fungsional setara untuk tujuan kami, dan Anda jauh lebih mungkin melihat tanda kurung siku karena berbagai alasan, jadi kami akan menggunakannya mulai sekarang..
Seperti apa hasilnya nanti:
Sangat mudah!
Apa yang saya lakukan sekarang?
Sekarang setelah Anda tahu cara menggunakan pernyataan "jika-maka-lain", Anda bisa menjalankan skrip yang dapat melakukan tes. Misalnya, Anda dapat menjalankan skrip yang akan menghitung hash file MD5 dan kemudian membandingkannya dengan yang Anda unduh dalam file untuk melihat apakah mereka cocok.
Untuk beberapa poin bonus, Anda dapat membuat skrip yang memiliki loop "untuk", tetapi menggunakan kondisi pengujian alih-alih membaca baris dari file daftar ...
Kita akan sampai pada bagian yang lebih menarik dalam Panduan Pemula untuk Script Shell. Jika Anda melewatkan pelajaran sebelumnya, berikut adalah daftar singkat untuk Anda periksa:
- Dasar-dasar Scripting Shell
- Menggunakan For Loops
- Perintah Lainnya
- Apa perbedaan antara shell Linux?
- Cara menggunakan Ekspresi Reguler Dasar
Jika Anda telah membuat atau menggunakan skrip yang memanfaatkan kondisi pengujian, pernyataan if-then-else, dan loop "for", bagikan dengan kami di komentar!