Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Come usi gli array in Unix?

Le conchiglie UNIX (come Bash, ZSH, SH) non hanno array allo stesso modo di linguaggi di livello superiore come Python o C ++. Gestiscono gli array in modo meno strutturato, in genere usando stringhe separate da spazi bianchi o tecniche speciali. Ecco come puoi lavorare con strutture simili a array in diversi contesti di shell:

1. Stringhe separate da spazi bianchi:

Questo è il metodo più semplice. Essenzialmente memorizzi elementi come una singola stringa, separata da spazi (o altri delimitatori che scegli). L'accesso ai singoli elementi richiede manipolazione delle stringhe.

`` `Bash

my_array ="Apple Banana Cherry"

Accesso al primo elemento (assumendo la separazione dello spazio):

first_element ="$ {my_array %% *}" #Removes di tutto dal primo spazio in poi.

Echo "$ First_element" # output:Apple

Accesso al secondo elemento:

Second_element ="$ {my_array #*}" #Removes tutto fino al primo spazio.

Second_element ="$ {second_element %% *}" #Removes di tutto dal primo spazio in poi

echo "$ second_element" # output:banana

#Iterating (meno efficiente):

per la frutta in $ my_array; Fare

Echo "$ frutti"

Fatto

`` `

Limitazioni: Questo approccio è soggetto a errori se gli elementi dell'array contengono spazi stessi.

2. Utilizzo di array in bash (e altre conchiglie con supporto per array):

Bash (e alcuni altri gusci moderni) forniscono supporto per array più robusto.

`` `Bash

Dichiara un array

my_array =("Apple" "Banana" "Cherry")

Accesso agli elementi:

echo "$ {my_array [0]}" # output:Apple

echo "$ {my_array [1]}" # output:banana

Ottenere la lunghezza dell'array:

echo "$ { # my_array [@]}" # output:3

iterating:

per i in "$ {! my_array [@]}"; Esegui #Itera attraverso gli indici

echo "$ {my_array [i]}"

Fatto

o iterare direttamente tramite elementi:

per la frutta in "$ {my_array [@]}"; Fare

Echo "$ frutti"

Fatto

#Adding Elements:

my_array+=("data")

echo "$ {my_array [3]}" #output:data

#Apping in Array:

my_array+=(ura arancione)

#REMOVING ELEMENTS (meno semplice, richiede lo spostamento):

UNSET 'my_array [1]' #Removes Element all'indice 1 (banana)

#Note che gli indici non si spostano automaticamente. Non esiste un turno integrato dopo la cancellazione.

Stampa l'array modificato:

per la frutta in "$ {my_array [@]}"; Fare

Echo "$ frutti"

Fatto

`` `

Considerazioni importanti:

* citazione: Citare sempre le variabili dell'array (ad esempio, `" $ {my_array [@]} `) per prevenire la scissione e il globo di parole, che possono portare a comportamenti imprevisti. Ciò è particolarmente critico quando gli elementi dell'array potrebbero contenere spazi o caratteri speciali.

* INDICE 0: Gli array in bash sono indicati 0, il che significa che il primo elemento è all'indice 0.

* Shell-specifico: La sintassi e le funzionalità disponibili per gli array potrebbero variare leggermente a seconda della specifica shell che stai utilizzando (Bash, ZSH, KSH, ecc.).

3. Utilizzo di strumenti di riga di comando per operazioni simili a array:

Per manipolazioni di array più complesse (smistamento, filtraggio, ecc.), Spesso troverai più efficiente utilizzare utility di comando esterne come `awk`,` sed` o `ordin`. Questi strumenti eccellono nell'elaborazione del testo, che possono essere adattati per funzionare con i dati strutturati come stringhe delimitate.

Ad esempio, per ordinare gli elementi di una stringa separata da spazi bianchi:

`` `Bash

my_array ="Apple Banana Cherry"

echo "$ my_array" | Tr '' '' \ n '| ordinamento | Tr '\ n' ''

`` `

In sintesi, mentre le conchiglie UNIX non hanno strutture di array ricche incorporate come altre lingue, il supporto per array di Bash è adeguato per molti compiti. Per manipolazioni complesse, considerare di sfruttare il potere delle utility di elaborazione del testo. Ricorda di citare sempre correttamente le variabili dell'array per evitare potenziali errori.

 

sistemi © www.354353.com