Introduzione al Bash Scripting
Alex Scriven
Data Scientist
Due tipi di array in Bash:
In Python: my_list = [1,3,2,4]
In R: my_vector <- c(1,3,2,4)
La creazione di un array indicizzato numericamente si può fare in due modi in Bash.
declare -a my_first_array
my_first_array=(1 2 3)
Ricorda: niente spazi intorno all'uguale!
In Bash non si usano le virgole per separare gli elementi:
Questo NON è corretto:
my_first_array=(1, 2, 3)
Questo è corretto:
my_first_array=(1 2 3)
array[@]. Nota: in Bash servono le parentesi graffe intorno al nome quando accedi a queste proprietà.my_array=(1 3 5 2)
echo ${my_array[@]}
1 3 5 2
#array[@]echo ${#my_array[@]}
4
Accedi agli elementi con le parentesi quadre.
my_first_array=(15 20 300 42)
echo ${my_first_array[2]}
300
Imposta gli elementi con la notazione a indice.
my_first_array=(15 20 300 42 23 2 4 33 54 67 66)my_first_array[0]=999echo ${my_first_array[0]}
999
$ quando sovrascrivi un indice, tipo $my_first_array[0]=999, non funziona.Usa la notazione array[@]:N:M per estrarre una "fetta" dell'array.
N è l'indice iniziale, M quanti elementi restituire.my_first_array=(15 20 300 42 23 2 4 33 54 67 66)
echo ${my_first_array[@]:3:2}
42 23
Aggiungi a un array con array+=(elements).
Per esempio:
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
Cosa succede se non metti le parentesi tonde intorno a ciò che vuoi aggiungere? Vediamo.
Per esempio:
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
La stringa 10 viene solo concatenata al primo elemento. Non è ciò che vogliamo!
bash --version nel terminaleIn Python:
my_dict = {'city_name': "New York", 'population': 14000000}
In R:
my_list = list(city_name = c('New York'), population = c(14000000))
Puoi creare un array associativo solo con declare (e -A maiuscola).
Puoi dichiarare prima e poi aggiungere elementi, o fare tutto su una riga.
Creiamo un array associativo:
declare -A city_details # Prima dichiaracity_details=([city_name]="New York" [population]=14000000) # Aggiungi elementiecho ${city_details[city_name]} # Indicizza con la chiave per ottenere il valore
New York
In alternativa, crea e assegna un array associativo in una riga
declare -A city_details=([city_name]="New York" [population]=14000000)
Accedi alle 'chiavi' di un array associativo con !
echo ${!city_details[@]} # Restituisci tutte le chiavi
city_name population
Introduzione al Bash Scripting