Pernyataan Bash 'jika lain': Tutorial dan Contoh

Menggunakan pernyataan if…else di Bash untuk eksekusi kode bersyarat.

Bash (Bourne Again Shell) adalah prompt perintah shell dan bahasa scripting di sistem operasi GNU/Linux. Ini adalah shell default untuk sebagian besar distribusi Linux.

Pernyataan bersyarat sangat penting dalam bahasa pemrograman apa pun, dikompilasi serta ditulis. Mereka membiarkan pengguna mengeksekusi sepotong kode berdasarkan kondisi yang telah ditentukan, yang merupakan salah satu dasar logika pemrograman. Pada artikel ini, kita akan belajar bagaimana menggunakan jika ... lain pernyataan bersyarat di Bash.

pengantar

Itu jika ... lain pernyataan di Bash memungkinkan pengguna memanipulasi aliran kode berdasarkan kondisi. Pengguna dapat menentukan blok kode terpisah yang akan dieksekusi, hanya satu yang akhirnya akan dieksekusi selama runtime, berdasarkan kondisi yang sesuai yang dipenuhi.

Perhatikan bahwa, lebih dari dua kondisi dapat ditentukan, yang: elif pernyataan dapat digunakan. Pengguna dapat memberikan sejumlah kondisi menggunakan elif, dan akhirnya kondisi default menggunakan kalau tidak memblokir. Mari kita lihat lebih lanjut tentang ini dalam sintaks dan contoh di bawah ini.

Sintaks Umum

Sintaks umum untuk jika ... lain pernyataan di Bash adalah:

jika kemudian  kalau tidak  fi

Di sini, jika memenuhi, yaitu, jika mengembalikan 0 (berhasil), maka blok kode 1 dijalankan. Jika kondisi tidak mengembalikan 0, yaitu mengembalikan status kegagalan, maka blok kode 2 dijalankan. Itu jika ... lain blok berakhir dengan fi penyataan.

Untuk beberapa blok yang sesuai dengan beberapa kondisi,elif digunakan:

jika kemudian  elif lalu  elif lalu  ... ... kalau tidak  fi

Di sini, kondisi diperiksa secara berurutan dan blok kode dari kondisi pertama yang mengembalikan status 0 (berhasil) dijalankan. Misalnya. jika mengembalikan status bukan nol (gagal), maka diperiksa. Jika mengembalikan status 0, dieksekusi. Setelah ini, kondisi lebih lanjut tidak diperiksa dan eksekusi kode berlanjut ke kode setelah fi penyataan.

Jika tidak ada kondisi yang mengembalikan status 0, di blok lain dieksekusi. Perhatikan bahwa blok else bersifat opsional. Jika tidak ada kondisi yang terpenuhi, begitu juga tidak kalau tidak blok ditentukan, tidak ada blok kode bersyarat yang akan berjalan, dan eksekusi kode akan dilanjutkan ke kode setelah fi pernyataan, seperti yang ditunjukkan pada diagram alir di bawah ini.

Perhatikan bahwa kemudian pernyataan akan digunakan hanya setelah jika dan elif pernyataan dan tidak diperlukan setelah kalau tidak penyataan.

Contoh

Untuk mengeksekusi blok kode jika suatu variabel memiliki nilai tertentu:

x=0 jika [ $x -eq 0 ] maka echo "Nilai X adalah 0" else echo "Nilai X bukan 0" fi

Untuk memeriksa beberapa nilai:

x=2 if [ $x -eq 0 ] lalu echo "Nilai X adalah 0" elif [ $x -eq 1 ] lalu echo "Nilai X adalah 1" elif [ $x -eq 2 ] lalu echo "Nilai dari X adalah 2" else echo "Nilai X bukan 0" fi

Syaratnya bisa berupa perintah Linux apa saja. Blok kode yang sesuai akan dijalankan jika perintah berhasil dijalankan.

jika npm -v lalu gema "NPM ada di sistem" selain itu Sudo apt install npm fi

Dalam contoh di atas, karena npm tidak diinstal di sistem, perintah npm -v mengembalikan status bukan nol. Oleh karena itu, eksekusi kode masuk ke kalau tidak blok, tempat kami menginstal npm menggunakan tepat manajer paket. Seperti yang bisa kita lihat, itu meminta saya untuk memasukkan kata sandi dan memulai instalasi npm.

Kita juga bisa membuat sarang yang lain jika ... lain blok di dalam jika, kalau tidak atau elif memblokir:

x=0 y=1 if [ $x -eq 0 ] then echo "X is 0" if [ $y -eq 1 ] then echo "Y is 1" else echo "Y is not 1" fi else echo "X is bukan 0" fi

Ini berguna ketika satu set kondisi terpisah akan diperiksa setelah kondisi awal terpenuhi.

Misalnya, kode berikut mencoba menginstal perangkat lunak server web:

jika nginx -v lalu gema "NGINX sudah diinstal." lain jika sudo apt install nginx lalu gema "instalasi NGINX berhasil." elif Sudo apt install Apache2 lalu gema "instalasi APACHE2 berhasil." else echo "Tidak dapat menginstal perangkat lunak web apa pun." fi

Kode pertama-tama memeriksa apakah Nginx sudah diinstal di sistem. Jika ya, itu hanya menampilkan pesan dan keluar. Jika tidak, ia mencoba menginstal Nginx.

Jika karena alasan tertentu, Nginx tidak dapat diinstal di sistem dari paket, ia mencoba menginstal Apache2. Jika bahkan Apache2 memberikan kesalahan saat menginstal, ia keluar dengan menampilkan pesan bahwa tidak ada perangkat lunak yang dapat diinstal.

Dengan cara yang sama, blok bersarang dapat digunakan di dalam elif blok juga.

Pelaksana jika ... lain: Skrip dan Baris Perintah

Mirip dengan kode Bash apa pun, jika ... lain pernyataan dapat digunakan di Bash shell secara langsung atau dari file skrip shell yang dapat dieksekusi. Setelah penerjemah Bash menemukan jika, kalau tidak atau elif pernyataan, itu melanjutkan shell untuk membiarkan pengguna memasukkan blok kode.

Pengguna juga dapat menyimpan kode ini dalam file skrip dan menjalankan file skrip.

Itu #!/bin/bash di awal menentukan penerjemah yang akan digunakan saat file dieksekusi. Meskipun Bash adalah shell yang paling umum digunakan saat ini, beberapa pengguna lebih memilih shell seperti zsh, yang harus ditentukan sebagai pengganti bash di awal file ini.

Untuk memberikan izin eksekusi untuk file ini, jalankan:

chmod +x test.sh

Terakhir, untuk mengeksekusi file, jalankan:

./test.sh

Kesimpulan

Mirip dengan bahasa pemrograman apa pun, jika ... lain pernyataan adalah fitur mendasar dari Bash. Mempelajari penggunaannya sangat membantu dalam menulis skrip dasar maupun lanjutan.