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 Jika tiada syarat mengembalikan status 0, Perhatikan bahawa Untuk melaksanakan blok kod jika pembolehubah mempunyai nilai tertentu: Untuk menyemak berbilang nilai: Syaratnya boleh berupa sebarang arahan Linux. Blok kod yang sepadan akan dilaksanakan jika arahan berjalan dengan jayanya. Dalam contoh di atas, sejak Kita juga boleh sarang yang lain Ini berguna apabila set syarat yang berasingan akan disemak sebaik sahaja syarat awal dipenuhi. Contohnya, kod berikut cuba memasang perisian pelayan web: 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 Sama seperti mana-mana kod Bash, the Pengguna juga boleh menyimpan kod ini dalam fail skrip dan melaksanakan fail skrip. The Untuk memberikan kebenaran laksana untuk fail ini, jalankan: Akhir sekali, untuk melaksanakan fail, jalankan: Sama seperti mana-mana bahasa pengaturcaraan, 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. 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.kemudian
pernyataan hanya akan digunakan selepas jika
dan elif
kenyataan dan tidak diperlukan selepas lain
kenyataan.Contoh
x=0 jika [ $x -eq 0 ] kemudian echo "Nilai X ialah 0" jika tidak echo "Nilai X bukan 0" fi
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
jika npm -v kemudian echo "NPM hadir dalam sistem" jika tidak sudo apt install npm fi
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.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
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
elif
blok juga.Melaksanakan
jika tidak
: Skrip dan Baris Perintahjika 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.#!/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.chmod +x test.sh
./test.sh
Kesimpulan
jika tidak
pernyataan ialah ciri asas Bash. Mempelajari penggunaannya sangat berguna dalam menulis skrip asas serta lanjutan.