GNU/Linux >> Linux Esercitazione >  >> Linux

bash:inserisci i file di elenco in una variabile e ma la dimensione dell'array è 1

Non stai creando un array a meno che non lo circondi con ( ) :

dirlist=(`ls ${prefix}*.text`)

Dichiara un array di file:

arr=(~/myDir/*)

Scorri l'array usando un contatore:

for ((i=0; i < ${#arr[@]}; i++)); do

  # [do something to each element of array]

  echo "${arr[$i]}"
done

Questo:

dirlist=`ls ${prefix}*.text`

non crea un array. Crea solo una stringa con nomi di file separati da spazi.

Devi fare

dirlist=(`ls ${prefix}*.text`)

per renderlo un array.

Poi $dirlist farà riferimento solo al primo elemento, quindi devi usare

${dirlist[*]}

per fare riferimento a tutti loro nel ciclo.


Linux
  1. Analizzare un campo da un array Json in un array Bash?

  2. Grep per più stringhe nei file e quindi elencare i file nell'ordine delle dimensioni?

  3. Ottieni tutti i file tranne i file nell'array - Bash?

  4. Come elencare la dimensione di ogni file e directory e ordinare per dimensione decrescente in Bash?

  5. Bash cattura l'output di awk nell'array

Dichiarazione Bash:sintassi ed esempi

Comando Ls in Linux (Elenca file e directory)

Come elencare tutti i file ordinati per dimensione in Linux?

Trasferisci i file usando lftp nello script bash

bash - rimuove tutte le directory (e i contenuti) ma non i file in pwd

Cos'è esattamente <() in bash (e =() in zsh)?