Pengaturcaraan dalam bash - bahagian 2

Kedua daripada ini tutorial mini pengaturcaraan di Bash, di mana kita belajar menggunakan kitaran dan alat lain yang akan membantu kami meningkatkan fungsi alat kami skrip.

Sekiranya bersyarat

Fungsi If adalah untuk menerapkan filter dan melakukan operasi atau tugas untuk setiap jenis filter yang digunakan. Strukturnya adalah seperti berikut:

Sekiranya [keadaan]; kemudian perintah elif [keadaan]; maka perintah lain; perintah fi

Contoh ditunjukkan di sebelah gelung For di bahagiannya.

Kitaran

1. Sementara: ia akan melaksanakan semua perintah yang ditentukan antara melakukan dan dilakukan selagi syaratnya benar. Sekiranya kita ingin memberikan operator perbandingan kepadanya, ungkapan mesti dalam tanda kurung.

semasa KEADAAN / PERINTAH melakukan perintah yang dilakukan

Contoh: jadual pendaraban nombor

#! / bin / bash X = 1 echo "Masukkan nombor dan tekan ENTER" baca M #Lingkaran mengawal bahawa X kurang daripada atau sama dengan 10 sementara [$ X –le 10] melakukan #In R kita menyimpan pendaraban X by MR = $ [X * M] # Pendaraban ini dicetak pada gema skrin "$ M * $ X = $ R" #Dengan membiarkan, kami meningkatkan nilai X sebanyak 1 unit membiarkan X = $ X + 1 selesai

2. Untuk: menyimpan senarai elemen dalam pemboleh ubah, yang akan digunakan untuk melakukan operasi tertentu dengan setiap kitaran.

untuk VARIABLE dalam ELEMENTS melakukan perintah yang dilakukan

Contoh: program yang menyalin fail dari satu folder ke folder lain, menggantikan fail lama.

# / bin / bash #Kami mewujudkan direktori sumber dan destinasi ASAL = / rumah / pengguna / Muat turun TUJUAN = / rumah / pengguna / Dokumen # Kami menempatkan diri dalam sumber cd $ ASAL #Dari semua fail, kami hanya mahukan yang adalah # panggil FILE untuk FILE di * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f menyaring kami fail biasa, kerana direktori # tidak ada yang baik bagi kami. –Nt menyaring # fail “lebih baru” daripada # yang terdapat di folder tujuan sekiranya [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; kemudian gema "Menyalin $ FILE ..." # kami menyalin fail dengan cp cp $ FILE $ ARCH-DESTINATION fi selesai #Kami cd untuk keluar dari folder sumber cd

Contoh lain: skrip di mana pengguna mesti meneka nombor rawak yang dihasilkan oleh komputer.

# / bin / bash # Nombor rawak dihasilkan dari 1 hingga 10, ia # disimpan dalam RANDOM RANDOM = $ [$ RANDOM% 10 + 1] sementara [1] bergema –n "Masukkan nombor:" baca NUM # Bandingkan jika nombor yang dipilih oleh pengguna adalah # sama dengan RANDOM; ingat untuk menggunakan $ untuk menilai # nilai pemboleh ubah dan bukan namanya jika [“$ NUM –eq“ $ RANDOM ”]; kemudian bergema "Anda betul!" #break membolehkan mengakhiri gelung semasa rehat #Jika bilangannya kurang dari RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; kemudian gema "Ia kurang" "Jika tidak, lebih besar daripada RANDOM yang lain bergema" ITU lebih besar "

3. Sehingga: strukturnya hampir sama dengan Sementara, kecuali bahawa kodnya selalu dijalankan sementara penilaian keadaannya negatif, iaitu, program ini terus dijalankan "sehingga kondisi itu terjadi"

sehingga KEADAAN / PERINTAH melakukan perintah yang dilakukan

Contoh: mencetak nombor 10-20 mengikut turutan menurun

#! / bin / bash CONT = 20 # Selagi kaunter kurang dari 10 (-lt, "lower #than") kod tersebut dilaksanakan sehingga [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT ditolak oleh unit biarkan CONT- = 1 selesai

4. Pilih: kitaran terakhir ini adalah kes khas, kerana biasanya digunakan untuk membuat menu dengan cepat. Ia berfungsi serupa dengan gelung For.

pilih VARIABLE dalam SENARAI perintah yang dilakukan

Contoh: memberi pengguna kemampuan untuk meneruskan atau mengakhiri skrip.

#! / bin / bash #item adalah pemboleh ubah yang bertindak balas terhadap apa yang #pengguna pilih, Lanjutkan dan Selesai adalah #pilihan yang ada padanya, walaupun pilihan lain dapat ditambahkan # lebih banyak item pilih di Lanjutkan Selesai lakukan #Jika pengguna memilih akhiri program, kemudian dengan rehat kita keluar dari kitaran. jika [$ item = "Selesai"]; maka break fi selesai
Terima kasih Juan Carlos Ortiz!