Pengaturcaraan BASH

Cara Membuat Fungsi Bash yang Mengembalikan Array

Cara Membuat Fungsi Bash yang Mengembalikan Array
Sekilas mungkin muncul bahawa mengembalikan array dari fungsi Bash tidak realistik. Dengan mempertimbangkan semua faedah, berguna untuk memanggil pelbagai kaedah untuk membina tatasusunan untuk membagi proses mengumpulkan semua parameter yang sesuai untuk panggilan YAD.

Terdapat banyak sebab mengapa seseorang ingin mengembalikan array BASH:

Anda mungkin percaya bahawa Bash kehilangan keupayaan untuk mengembalikan susunan fungsi. Namun, itu tidak betul. Adalah mungkin untuk memindahkan susunan yang dihasilkan ke metode dengan rujukan, dengan mengambil petunjuk dari pembangun C / C ++. Strategi sedemikian memungkinkan kaedah untuk terus bebas dari rujukan ke arah pemboleh ubah global. Artikel berikut menunjukkan contoh kes yang jelas.

Contoh 1: Mengembalikan Array

Log masuk ke sistem Linux anda dan buka terminal arahan untuk meneruskan. Kami akan membuat fail Bash bernama "skrip.sh ”menggunakan sentuhan arahan untuk mengembalikan array menggunakan fungsi Bash. Skripnya adalah seperti berikut:

skrip $ sentuh.sh

Anda dapat melihat fail yang baru dibuat di Rumah direktori. Buka fail ini dan tuliskan kod yang dilampirkan ke dalamnya sebagaimana adanya. Di sini, kami berusaha untuk membuat susunan asosiatif melalui argumen dalam kaedah dari lulus senarai.

Pada mulanya, kami telah membuat fungsi foo ().

Di dalam program ini, kami telah menghapus istilah "mendeklarasikan", yang merupakan perintah Bash yang telah dikonfigurasikan sebelumnya yang memungkinkan kita mengubah atau menyesuaikan atribut, metode shell yang dioleskan ke pembolehubah, dan menunjukkan nilai atribut ini di jangka masa terminal komando shell kami. Lebih-lebih lagi, ia boleh digunakan untuk menentukan pemboleh ubah panjang. Terakhir, ia digunakan untuk menentukan pemboleh ubah.

Kami telah menambahkan nilai "fooval" ke array "arr".

Kata kunci "-A" digunakan untuk membuat NAMA susunan bersekutu jika disokong. Kita mesti menggunakan senarai / array sebagai pemboleh ubah global, yang menunjukkan bahawa hanya satu kaedah, bukan skrip, yang dapat melakukan tindakan ini.

Kami juga telah membuat array lain, bernama "myarr," untuk digunakan sebagai rujukan. Bash membenarkan nama arr pemboleh ubah relatif tidak sama dengan nama myarr pemboleh ubah relatif.

Setelah itu, di baris kelapan, kami telah menyampaikan array "myarr" ke Bash foo () berfungsi sebagai rujukan.

Pada masa lalu, kami menggunakan gelung "untuk" untuk mencetak array "arr" dan "myarr" ke foo () fungsi.

Kami sekarang akan memeriksa hasil kod ini. Jalankan perintah Bash untuk menjalankan kod di atas. Anda dapat melihat bahawa array telah dikembalikan ke fungsi dan kemudian dicetak.

skrip $ bash.sh

Contoh 2: Mengembalikan Array yang lain

Mari kita lihat contoh lain untuk mengembalikan tatasusunan ke fungsi. Buka terminal arahan anda dan buat fail baru bernama "openvpn.log ”menggunakan sentuhan perintah, seperti berikut:

$ sentuh openvpn.balak

Sekarang, buka "openvpn.log ”fail, dan tulis teks berikut ke dalam fail ini, seperti yang ditunjukkan. Simpan fail ini dan tutup.

Sekali lagi, buka shell arahan dan buat fail lain bernama “script.sh, "menggunakan sentuhan arahan untuk menambah skrip Bash ke fail.

skrip $ sentuh.sh

Seterusnya, buka skrip “.sh ”fail dan tambahkan kod berikut ke dalam fail ini sebagaimana adanya. Simpan dan tutup fail ini. Skrip ini akan menggunakan kaedah yang membaca nilai / rentetan dari dokumen dan mengembalikan array:

Sekarang mari kita lihat secara terperinci cara kerja skrip ini.

Mari kita periksa output skrip Bash ini. Jalankan perintah Bash untuk melaksanakan skrip “.fail sh ”. Seperti yang anda lihat, pernyataan gema pertama akan mencetak semua teks dari "openvpn.log ", yang telah disimpan dalam array" klien "sebagai satu baris. Pernyataan gema kedua akan memaparkan mesej rentetan. Pernyataan gema ketiga akan memaparkan array "klien" dalam bentuk terindeks, seperti yang baru saja ditukar. Yang keempat akan memaparkan semula mesej. Yang terakhir akan memaparkan kandungan array "pelanggan" secara individu.

Kesimpulannya

Artikel ini menunjukkan kepada anda cara mengembalikan tatasusunan (terutama susunan asosiatif) ke fungsi menggunakan perintah "deklarasi" terbina dalam dengan dua contoh. Saya harap artikel ini dapat membantu anda memahami topik ini dengan lebih baik.

Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...
Tutorial Unity3D
Pengenalan Unity 3D Unity 3D adalah enjin pengembangan permainan yang kuat. Ini adalah platform silang yang memungkinkan anda membuat permainan untuk ...