GNU/Linux >> Znalost Linux >  >> Linux

bash:vložte soubory seznamu do proměnné a velikost pole je 1

Nevytváříte pole, dokud je neobklopíte ( ) :

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

Deklarujte pole souborů:

arr=(~/myDir/*)

Iterujte pole pomocí čítače:

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

  # [do something to each element of array]

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

Toto:

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

nevytváří pole. Vytvoří pouze řetězec s názvy souborů oddělenými mezerami.

Musíte to udělat

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

aby z toho bylo pole.

Poté $dirlist bude odkazovat pouze na první prvek, takže musíte použít

${dirlist[*]}

odkazovat na všechny z nich ve smyčce.


Linux
  1. Jednoduchá závorka v přiřazení proměnné Bash?

  2. Jak hledat soubory podle velikosti a přípony?

  3. Zkontrolujte, zda existuje proměnná v seznamu v Bash

  1. předání grepu do proměnné v bash

  2. bash:nastavení proměnné env pole a dereferencování z libovolného skriptu shellu selže

  3. Bash zachycující výstup awk do pole

  1. Příkaz pro výpis všech souborů kromě . (tečka) a .. (tečka tečka)

  2. Přeneste soubory pomocí lftp v bash skriptu

  3. Exportujte proměnnou z bash a použijte ji v Pythonu