- Tentukan Tatasusunan mengikut Indeks
- Tentukan Tatasusunan dengan Berbilang Nilai
- Tentukan Tatasusunan Bersekutu
- Kira Nilai Tatasusunan
- Baca Nilai Tatasusunan mengikut Gelung
- Baca Nilai Tertentu Array
- Masukkan Nilai Tatasusunan
- Baca Kandungan Fail ke dalam Tatasusunan
- Gabungkan Nilai Tatasusunan
- Ubah suai Nilai Tatasusunan
- Keluarkan Nilai Tatasusunan
- Cari dan Gantikan Nilai Tatasusunan
- Gunakan Tatasusunan sebagai Argumen Fungsi
- Kembalikan Tatasusunan daripada Fungsi
- Jadikan Array Kosong
Tentukan Tatasusunan mengikut Indeks
Kaedah mengisytiharkan tatasusunan dengan menyebut indeks angka berjujukan atau tidak berurutan ditunjukkan dalam skrip berikut. Tatasusunan jenis ini dipanggil tatasusunan angka. Di sini, tatasusunan '$books' dicipta dengan mentakrifkan tiga indeks berjujukan dan tatasusunan '$produk' dicipta dengan mentakrifkan empat indeks bukan berjujukan. Semua nilai kedua-dua tatasusunan dicetak menggunakan fungsi 'printf'.
#!/bin/bash
#Tentukan indeks tatasusunan dalam susunan berurutan
buku [ 0 ] = 'Mempelajari Shell bash'
buku [ 1 ] = 'Ops Keselamatan Siber dengan bash'
buku [ 2 ] = 'Petua Pro Barisan Perintah Bash'
bergema 'Semua nilai tatasusunan pertama:'
printf '%s\n' ' ${buku[@]} '
#Tentukan indeks tatasusunan dalam susunan bukan urutan
produk [ 10 ] = 'Pen'
produk [ 5 ] = 'Pensel'
produk [ 9 ] = 'Rular'
produk [ 4 ] = 'Kertas Saiz A4'
bergema
bergema 'Semua nilai tatasusunan kedua:'
printf '%s\n' ' ${produk[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai kedua-dua tatasusunan dicetak dalam output. Susunan indeks dikekalkan pada masa pencetakan untuk tatasusunan indeks tidak berurutan:
Tentukan Tatasusunan dengan Berbilang Nilai
Tatasusunan angka dengan berbilang nilai boleh diisytiharkan menggunakan perintah 'deklarasikan' dengan pilihan -a atau tanpa menggunakan arahan 'deklarasi'. Dalam skrip berikut, tatasusunan pertama diisytiharkan menggunakan perintah 'deklarasi' dan tatasusunan kedua dibuat tanpa menggunakan arahan 'isytiharkan'.
#!/bin/bash
#Isytihar tatasusunan angka dengan kata kunci 'deklarasi'
mengisytiharkan -a nama = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' )
#Cetak nilai tatasusunan
bergema 'Semua nilai tatasusunan pertama:'
printf '%s\n' ' ${nama[@]} '
#Isytihar tatasusunan angka tanpa kata kunci 'deklarasi'
buku = ( 'Tutorial Skrip Shell' 'Bish Bash Bosh!' 'Belajar Bash dengan Cepat' )
#Tambah baris baharu
bergema
#Cetak nilai tatasusunan
bergema 'Semua nilai tatasusunan kedua:'
printf '%s\n' ' ${buku[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai kedua-dua tatasusunan dicetak di sini:
Tentukan Tatasusunan Bersekutu
Tatasusunan yang mengandungi nilai rentetan sebagai indeks dipanggil tatasusunan bersekutu. Pilihan -A digunakan dengan arahan 'deklarasi' dalam Bash untuk mencipta tatasusunan Bash bersekutu. Dalam skrip berikut, tatasusunan bersekutu pertama diisytiharkan dengan menyebut indeks secara berasingan dan tatasusunan kedua diisytiharkan dengan menyebut semua pasangan nilai kunci pada masa pengisytiharan tatasusunan.
#!/bin/bash#Isytiharkan pembolehubah tatasusunan bersekutu tanpa nilai
mengisytiharkan -A pekerja
#Tetapkan nilai secara berasingan dengan mentakrifkan indeks
pekerja [ 'ID' ] = '78564'
pekerja [ 'nama' ] = 'Pelakon Tersedia'
pekerja [ 'jawatan' ] = 'CEO'
pekerja [ 'gaji' ] = 300000
#Cetak dua nilai tatasusunan
bergema 'ID pekerja: ${pekerja[id]} '
bergema 'Nama Pekerja: ${pekerja[nama]} '
#Isytihar tatasusunan bersekutu dengan nilai
mengisytiharkan -A kursus = ( [ kod ] = 'CSE-206' [ nama ] = 'Pengaturcaraan Berorientasikan Objek' [ jam_kredit ] = 2.0 )
#Tambah baris baharu
bergema
#Cetak dua nilai tatasusunan tatasusunan kedua
bergema 'Nama kursus: ${course[name]} '
bergema 'Jam Kredit: ${course[credit_hour]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai tertentu tatasusunan bersekutu dicetak di sini dengan menyebut kunci atau nilai indeks:
Kira Nilai Tatasusunan
Kaedah mengira jumlah elemen tatasusunan angka dan tatasusunan bersekutu ditunjukkan dalam skrip berikut:
#!/bin/bash#Isytihar tatasusunan angka
mengisytiharkan -a nama = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' ) ;
bergema 'Panjang tatasusunan angka ialah ${#nama[@]} '
#Isytihar tatasusunan bersekutu
mengisytiharkan -A kursus = ( [ kod ] = 'CSE-206' [ nama ] = 'Pengaturcaraan Berorientasikan Objek' [ jam_kredit ] = 2.0 )
bergema 'Panjang tatasusunan bersekutu ialah ${#course[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Panjang tatasusunan tatasusunan angka dan bersekutu dicetak di sini:
Baca Nilai Tatasusunan mengikut Gelung
Kaedah membaca semua nilai tatasusunan angka dan tatasusunan bersekutu menggunakan gelung 'untuk' ditunjukkan dalam skrip berikut:
#!/bin/bash#Isytihar tatasusunan angka
mengisytiharkan -a buku = ( 'Tutorial Skrip Shell' 'Bish Bash Bosh!' 'Belajar Bash dengan Cepat' )
#Cetak nilai tatasusunan angka
bergema 'Nilai tatasusunan angka ialah:'
untuk dalam dalam ' ${buku[@]} '
buat
bergema ' $in '
selesai
bergema
#Isytihar tatasusunan bersekutu dengan nilai
mengisytiharkan -A pelanggan = (
[ ID ] = 'H-5623'
[ nama ] = 'Mr. Ahnaf'
[ alamat ] = '6/A, Dhanmondi, Dhaka.'
[ telefon ] = '+8801975642312' )
#Cetak nilai tatasusunan bersekutu
bergema 'Nilai tatasusunan bersekutu ialah:'
untuk k dalam ' ${!pelanggan[@]} '
buat
bergema ' $k => ${clients[$k]} '
selesai
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Di sini, nilai tatasusunan angka dan pasangan nilai kunci tatasusunan bersekutu dicetak dalam output:
Baca Julat Nilai Tertentu bagi Tatasusunan
Nilai tatasusunan julat tertentu indeks ditunjukkan dalam skrip berikut. Dalam skrip, tatasusunan berangka empat elemen ditakrifkan. Dua nilai tatasusunan daripada indeks kedua tatasusunan akan dicetak kemudian.
#!/bin/bash#Isytihar tatasusunan angka
mengisytiharkan -a kuih muih = ( 'Kek coklat' 'Kek Vanila' 'Kek Red Velvet' 'kek strawberi' )
#Cetak nilai tatasusunan tertentu
bergema 'Elemen ke-2 dan ke-3 nilai tatasusunan ialah:'
printf '%s\n' ' ${kek[@]:1:2} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai kedua dan ketiga tatasusunan ialah 'Vanilla Cake' dan 'Red Velvet Cake' yang dicetak dalam output:
Masukkan Nilai Tatasusunan
Kaedah menambah berbilang nilai pada akhir tatasusunan ditunjukkan dalam skrip berikut. Tatasusunan utama iaitu '$books' mengandungi tiga elemen dan dua elemen ditambah pada penghujung tatasusunan '$books'.
#!/bin/bash#Isytihar tatasusunan angka
mengisytiharkan -a buku = ( 'Tutorial Skrip Shell' 'Bish Bash Bosh!' 'Belajar Bash dengan Cepat' )
#Cetak nilai tatasusunan sebelum memasukkan
bergema 'Nilai tatasusunan:'
printf '%s\n' ' ${buku[@]} '
bergema
buku = ( ' ${buku[@]} ' 'Baris Perintah Linux dan Bible Skrip Shell' 'Panduan Skrip Bash Lanjutan oleh Mendel Cooper' )
#Cetak nilai tatasusunan selepas memasukkan
bergema 'Nilai tatasusunan selepas memasukkan dua nilai:'
printf '%s\n' ' ${buku[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai tatasusunan sebelum dan selepas memasukkan nilai baru dicetak dalam output:
Baca Kandungan Fail ke dalam Tatasusunan
Buat fail teks bernama 'fruits.txt' dengan kandungan berikut untuk menguji skrip contoh ini:
fruits.txt
manggabuah nangka
Nenas
Jingga
pisang
Dalam skrip berikut, kandungan fail disimpan dalam tatasusunan bernama '$data'. Di sini, setiap baris fail disimpan sebagai setiap elemen tatasusunan. Seterusnya, nilai tatasusunan dicetak.
#!/bin/bash#Baca nama fail daripada pengguna
membaca -hlm 'Masukkan nama fail:' nama fail
jika [ -f $nama fail ]
kemudian
#Baca kandungan fail ke dalam tatasusunan'
data = ( ` kucing ' $nama fail ' ` )
bergema 'Kandungan fail diberikan di bawah:'
#Baca fail baris demi baris
untuk barisan dalam ' ${data[@]} '
buat
bergema $line
selesai
jadilah
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Output yang ditunjukkan oleh arahan 'cat' dan output skrip adalah serupa kerana fail yang sama diakses oleh arahan 'cat' dan skrip:
Gabungkan Nilai Tatasusunan
Tatasusunan baharu dicipta dengan menggabungkan nilai pelbagai tatasusunan. Dalam skrip berikut, dua tatasusunan berangka rentetan ditakrifkan. Kemudian, tatasusunan baharu dicipta dengan menggabungkan nilai tatasusunan ini.
#!/bin/bash#Isytiharkan tatasusunan pertama
mengisytiharkan -a senarai nama1 = ( 'Michael' 'David' 'Alexander' 'Thomas' )
bergema 'Nilai tatasusunan pertama ialah:'
printf '%s,' ${nameList1[@]}
bergema
#Isytiharkan tatasusunan kedua
mengisytiharkan -a senarai nama2 = ( 'Robert' 'Richard' )
bergema 'Nilai tatasusunan kedua ialah:'
printf '%s,' ${nameList2[@]}
bergema
#Buat tatasusunan baharu dengan menggabungkan dua tatasusunan
gabungan_array = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
bergema 'Nilai tatasusunan gabungan ialah:'
printf '%s,' ${combined_array[@]}
bergema
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Di sini, nilai tiga tatasusunan dicetak dalam output. Tatasusunan ketiga mengandungi semua nilai tatasusunan pertama dan kedua:
Ubah suai Nilai Tatasusunan
Kaedah mengemas kini satu atau lebih nilai tatasusunan dengan menyebut indeks ditunjukkan dalam skrip berikut:
#!/bin/bash#Isytiharkan tatasusunan pertama
mengisytiharkan -a senarai nama = ( 'Michael' 'David' 'Alexander' 'Thomas' )
bergema 'Nilai tatasusunan:'
printf '%s,' ${nameList[@]}
bergema
#Kemas kini nilai ke-2 tatasusunan
senarai nama [ 1 ] = 'Robert'
bergema 'Nilai tatasusunan selepas kemas kini:'
printf '%s,' ${nameList[@]}
bergema
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai tatasusunan utama dan tatasusunan yang dikemas kini dicetak dalam output:
Keluarkan Nilai Tatasusunan
Perintah 'tidak ditetapkan' digunakan untuk mengalih keluar elemen tertentu atau semua elemen tatasusunan. Dalam skrip berikut, elemen kedua tatasusunan dialih keluar.
#!/bin/bash#Isytihar tatasusunan angka
mengisytiharkan -a buku = ( 'Tutorial Skrip Shell' 'Bish Bash Bosh!' 'Belajar Bash dengan Cepat' )
#Cetak nilai tatasusunan sebelum mengalih keluar
bergema 'Nilai tatasusunan:'
printf '%s\n' ' ${buku[@]} '
bergema
#Alih keluar elemen ke-2
tidak ditetapkan buku [ 1 ]
#Cetak nilai tatasusunan selepas dialih keluar
bergema 'Nilai tatasusunan selepas mengalih keluar nilai ke-2:'
printf '%s\n' ' ${buku[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai tatasusunan utama dan nilai tatasusunan selepas mengalih keluar satu nilai dicetak dalam output:
Cari dan Gantikan Nilai Tatasusunan
Dalam skrip berikut, nilai tertentu tatasusunan digantikan dengan nilai lain jika nilai carian yang ditakrifkan dalam corak dipadankan dengan sebarang nilai tatasusunan '$names'.
#!/bin/bash#Isytiharkan tatasusunan pertama
mengisytiharkan -a nama = ( 'Michael' 'David' 'Alexander' 'Thomas' )
#Cetak nilai tatasusunan asal
bergema 'Nilai tatasusunan asal:'
printf '%s\n' ' ${nama[@]} '
#Menjana rentetan selepas menggantikan nilai tatasusunan
array_update = ${nama[@]/Alexander/Richard}
#Cetak nilai tatasusunan selepas diganti
bergema 'Nilai tatasusunan selepas ganti:'
printf '%s\n' ' ${updated_array[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Nilai tatasusunan utama dan nilai tatasusunan selepas menggantikan nilai dicetak dalam output:
Gunakan Tatasusunan sebagai Argumen Fungsi
Dalam skrip berikut, pembolehubah tatasusunan diluluskan sebagai hujah fungsi dan nilai tatasusunan itu dicetak kemudian.
#!/bin/bash#Isytiharkan susunan nombor
mengisytiharkan -a nombor = ( 10 6 Empat lima 13 8 )
#Tentukan fungsi yang akan mengambil nilai hujah
fungsi ( )
{
#Baca hujah pertama
nombor = $1
#Cetak nilai tatasusunan
bergema 'Nilai tatasusunan:'
printf '%d\n' ' ${nombor[@]} '
}
#Panggil fungsi dengan tatasusunan sebagai hujah
fungsi ' ${nombor[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip:
Kembalikan Tatasusunan daripada Fungsi
Dalam skrip berikut, fungsi dipanggil dengan empat argumen angka. Tatasusunan dicipta dengan nilai argumen dan tatasusunan itu dikembalikan daripada fungsi kepada pemanggil.
#!/bin/bash#Tentukan fungsi yang membaca empat nilai argumen
fungsi ( )
{
#Baca nilai hujah
nombor = ( $1 $2 $3 $4 )
#Kembalikan tatasusunan
bergema ' ${nombor[@]} '
}
#Panggil fungsi dengan tiga argumen
return_val =$ ( fungsi 78 Empat lima 90 23 )
#Simpan nilai pulangan dalam tatasusunan
membaca -a pada satu <<< $return_val
#Cetak nilai tatasusunan yang dikembalikan
bergema 'Nilai tatasusunan ialah:'
untuk dalam dalam ' ${num[@]} '
buat
bergema ' $in '
selesai
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip:
Jadikan Array Kosong
Skrip berikut menunjukkan kaedah membuat tatasusunan kosong menggunakan arahan 'nyah ditetapkan'. Jumlah bilangan nilai tatasusunan dicetak sebelum dan selepas membuat tatasusunan kosong.
#!/bin/bash#Isytiharkan susunan nombor
mengisytiharkan -a nombor = ( 10 6 Empat lima 13 80 )
bergema 'Bilangan nilai tatasusunan: ${#numbers[@]} '
#Jadikan tatasusunan kosong
tidak ditetapkan nombor
bergema 'Bilangan nilai tatasusunan selepas membuat tatasusunan kosong: ${#numbers[@]} '
Pengeluaran :
Output berikut muncul selepas melaksanakan skrip. Bilangan elemen tatasusunan menjadi 0 selepas membuat tatasusunan kosong:
Kesimpulan
Kaedah yang berbeza untuk mengisytiharkan, mengakses, mengubah suai dan mengalih keluar pembolehubah tatasusunan dalam skrip Bash ditunjukkan dalam tutorial ini menggunakan 15 contoh mudah. Kami berharap tutorial ini akan membantu pengguna Bash mengetahui penggunaan tatasusunan Bash secara terperinci.