Pernyataan Bash 'jika lain': Tutorial dan Contoh

Menggunakan pernyataan if…else dalam Bash untuk pelaksanaan kod bersyarat.

Bash (Bourne Again Shell) ialah gesaan arahan shell dan bahasa skrip dalam sistem pengendalian GNU/Linux. Ia adalah cangkerang lalai untuk kebanyakan pengedaran Linux.

Pernyataan bersyarat adalah penting dalam mana-mana bahasa pengaturcaraan, disusun serta skrip. Mereka membenarkan pengguna melaksanakan sekeping kod berdasarkan syarat yang telah ditetapkan, yang merupakan salah satu asas logik pengaturcaraan. Dalam artikel ini, kita akan belajar cara menggunakan jika tidak pernyataan bersyarat dalam Bash.

pengenalan

The jika tidak pernyataan dalam Bash membolehkan pengguna memanipulasi aliran kod berdasarkan syarat. Pengguna boleh menentukan blok kod berasingan untuk dilaksanakan, hanya satu daripadanya yang akhirnya akan dilaksanakan semasa masa jalan, berdasarkan keadaan sepadan yang dipenuhi.

Ambil perhatian bahawa, lebih daripada dua syarat boleh ditentukan, yang mana elif pernyataan boleh digunakan. Pengguna boleh memberikan sebarang bilangan syarat menggunakan elif, dan akhirnya syarat lalai menggunakan lain blok. Mari lihat lebih lanjut tentang ini dalam sintaks dan contoh di bawah.

Sintaks Umum

Sintaks umum untuk jika tidak pernyataan dalam Bash ialah:

jika kemudian  lain  fi

Di sini, jika memuaskan, iaitu, jika ia mengembalikan 0 (berjaya), maka blok kod 1 dilaksanakan. Jika keadaan tidak mengembalikan 0, iaitu, ia mengembalikan status kegagalan, maka blok kod 2 dilaksanakan. The jika tidak bongkah berakhir dengan a fi kenyataan.

Untuk berbilang blok yang sepadan dengan berbilang syarat,elif digunakan:

jika kemudian  elif kemudian  elif kemudian  ... ... lain  fi

Di sini, syarat disemak mengikut tertib dan blok kod syarat pertama yang mengembalikan status 0 (berjaya) dilaksanakan. Cth. jika mengembalikan status bukan sifar (kegagalan), kemudian disemak. Jika mengembalikan status 0, dilaksanakan. Selepas ini, syarat lanjut tidak disemak dan pelaksanaan kod diteruskan ke kod selepas fi kenyataan.

Jika tiada syarat mengembalikan status 0, dalam blok else dilaksanakan. Ambil perhatian bahawa blok else adalah pilihan. Jika tiada syarat yang dipenuhi, begitu juga tidak lain blok ditentukan, tiada blok kod bersyarat akan dijalankan, dan pelaksanaan kod akan diteruskan ke kod selepas fi pernyataan, seperti yang ditunjukkan dalam graf alir di bawah.

Perhatikan bahawa kemudian pernyataan hanya akan digunakan selepas jika dan elif kenyataan dan tidak diperlukan selepas lain kenyataan.

Contoh

Untuk melaksanakan blok kod jika pembolehubah mempunyai nilai tertentu:

x=0 jika [ $x -eq 0 ] kemudian echo "Nilai X ialah 0" jika tidak echo "Nilai X bukan 0" fi

Untuk menyemak berbilang nilai:

x=2 jika [ $x -eq 0 ] kemudian echo "Nilai X ialah 0" elif [ $x -eq 1 ] kemudian echo "Nilai X ialah 1" elif [ $x -eq 2 ] kemudian echo "Nilai bagi X ialah 2" yang lain gema "Nilai X bukan 0" fi

Syaratnya boleh berupa sebarang arahan Linux. Blok kod yang sepadan akan dilaksanakan jika arahan berjalan dengan jayanya.

jika npm -v kemudian echo "NPM hadir dalam sistem" jika tidak sudo apt install npm fi

Dalam contoh di atas, sejak npm tidak dipasang dalam sistem, arahan npm -v mengembalikan status bukan sifar. Oleh itu, pelaksanaan kod masuk ke dalam lain blok, di mana kami memasang npm menggunakan apt pengurus pakej. Seperti yang kita lihat, ia mendorong saya untuk memasukkan kata laluan dan memulakan pemasangan npm.

Kita juga boleh sarang yang lain jika tidak blok di dalam an jika, lain atau elif blok:

x=0 y=1 jika [ $x -eq 0 ] kemudian echo "X ialah 0" jika [ $y -eq 1 ] kemudian echo "Y ialah 1" lagi echo "Y is not 1" fi else echo "X is bukan 0" fi

Ini berguna apabila set syarat yang berasingan akan disemak sebaik sahaja syarat awal dipenuhi.

Contohnya, kod berikut cuba memasang perisian pelayan web:

jika nginx -v kemudian echo "NGINX sudah dipasang." lain jika sudo apt install nginx kemudian echo "Pemasangan NGINX berjaya." elif sudo apt install apache2 kemudian echo "Pemasangan APACHE2 berjaya." else echo "Tidak dapat memasang sebarang perisian web." fi

Kod pertama menyemak sama ada Nginx telah dipasang dalam sistem. Jika ya, ia hanya memaparkan mesej dan keluar. Jika tidak, ia cuba memasang Nginx.

Jika atas sebab tertentu, Nginx tidak dapat dipasang dalam sistem daripada pakej, ia cuba memasang Apache2. Jika Apache2 pun memberikan ralat semasa memasang, ia akan keluar daripada memaparkan mesej bahawa tiada perisian boleh dipasang.

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

Melaksanakan jika tidak: Skrip dan Baris Perintah

Sama seperti mana-mana kod Bash, the jika tidak pernyataan boleh digunakan dalam shell Bash secara langsung atau dari fail skrip shell boleh laku. Sebaik sahaja jurubahasa Bash menemui satu jika, lain atau elif kenyataan, ia meneruskan shell untuk membenarkan pengguna memasuki blok kod.

Pengguna juga boleh menyimpan kod ini dalam fail skrip dan melaksanakan fail skrip.

The #!/bin/bash pada permulaan menentukan penterjemah untuk digunakan apabila fail dilaksanakan. Walaupun Bash ialah shell yang paling biasa digunakan pada masa kini, sesetengah pengguna lebih suka shell seperti zsh, yang harus dinyatakan sebagai ganti bash pada permulaan fail ini.

Untuk memberikan kebenaran laksana untuk fail ini, jalankan:

chmod +x test.sh

Akhir sekali, untuk melaksanakan fail, jalankan:

./test.sh

Kesimpulan

Sama seperti mana-mana bahasa pengaturcaraan, jika tidak pernyataan ialah ciri asas Bash. Mempelajari penggunaannya sangat berguna dalam menulis skrip asas serta lanjutan.