Pengantar Bash Scripting
Alex Scriven
Data Scientist
Dua jenis array di Bash:
Di Python: my_list = [1,3,2,4]
Di R: my_vector <- c(1,3,2,4)
Array berindeks numerik dapat dibuat dengan dua cara di Bash.
declare -a my_first_array
my_first_array=(1 2 3)
Ingat: jangan ada spasi di sekitar tanda sama dengan!
Koma tidak dipakai untuk memisahkan elemen array di Bash:
Ini tidak benar:
my_first_array=(1, 2, 3)
Ini benar:
my_first_array=(1 2 3)
array[@]. Perhatikan, Bash memerlukan kurung kurawal di sekitar nama array saat mengakses properti ini.my_array=(1 3 5 2)
echo ${my_array[@]}
1 3 5 2
#array[@]echo ${#my_array[@]}
4
Akses elemen array dengan tanda kurung siku.
my_first_array=(15 20 300 42)
echo ${my_first_array[2]}
300
Atur elemen array dengan notasi indeks.
my_first_array=(15 20 300 42 23 2 4 33 54 67 66)my_first_array[0]=999echo ${my_first_array[0]}
999
$ saat menimpa indeks seperti $my_first_array[0]=999, karena tidak akan berfungsi.Gunakan notasi array[@]:N:M untuk mengekstrak subset array.
N adalah indeks awal, M jumlah elemen yang dikembalikan.my_first_array=(15 20 300 42 23 2 4 33 54 67 66)
echo ${my_first_array[@]:3:2}
42 23
Tambahkan ke array dengan array+=(elemen).
Contoh:
my_array=(300 42 23 2 4 33 54 67 66)my_array+=(10) echo ${my_array[@]}
300 42 23 2 4 33 54 67 66 10
Apa yang terjadi jika Anda tidak menambahkan tanda kurung pada yang ingin ditambahkan? Mari lihat.
Contoh:
my_array=(300 42 23 2 4 33 54 67 66)
my_array+=10
echo ${my_array[@]}
30010 42 23 2 4 33 54 67 66
String 10 hanya ditambahkan ke elemen pertama. Bukan yang kita inginkan!
bash --version di terminalDi Python:
my_dict = {'city_name': "New York", 'population': 14000000}
Di R:
my_list = list(city_name = c('New York'), population = c(14000000))
Array asosiatif hanya dapat dibuat dengan sintaks declare (dan -A huruf besar).
Anda bisa deklarasikan dulu lalu tambah elemen, atau lakukan dalam satu baris.
Mari buat array asosiatif:
declare -A city_details # Deklarasi dulucity_details=([city_name]="New York" [population]=14000000) # Tambah elemenecho ${city_details[city_name]} # Indeks dengan key untuk mengembalikan nilai
New York
Alternatifnya, buat array asosiatif dan tetapkan dalam satu baris
declare -A city_details=([city_name]="New York" [population]=14000000)
Akses 'key' dari array asosiatif dengan !
echo ${!city_details[@]} # Kembalikan semua key
city_name population
Pengantar Bash Scripting