GNU/Linux >> Tutoriels Linux >  >> Linux

bash:placez les fichiers de liste dans une variable et mais la taille du tableau est 1

Vous ne créez pas de tableau à moins de l'entourer de ( ) :

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

Déclarez un tableau de fichiers :

arr=(~/myDir/*)

Itérer dans le tableau à l'aide d'un compteur :

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

  # [do something to each element of array]

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

Ceci :

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

ne fait pas un tableau. Il crée uniquement une chaîne avec des noms de fichiers séparés par des espaces.

Vous devez faire

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

pour en faire un tableau.

Puis $dirlist référencera uniquement le premier élément, vous devez donc utiliser

${dirlist[*]}

pour tous les référencer dans la boucle.


Linux
  1. Parenthèse unique dans l'affectation de variables Bash ?

  2. Grep pour plusieurs chaînes dans des fichiers, puis répertorier les fichiers dans l'ordre de taille ?

  3. Obtenir tous les fichiers sauf les fichiers du tableau - Bash ?

  4. Boucler dans un dossier et lister les fichiers ?

  5. Comment lister la taille de chaque fichier et répertoire et trier par taille décroissante dans Bash ?

Bash declare Statement :Syntaxe et exemples

Commande Ls sous Linux (liste des fichiers et des répertoires)

Comment lister tous les fichiers classés par taille sous Linux ?

passer grep dans une variable bash

bash :définir la variable d'environnement de tableau et la déréférencer à partir de n'importe quel script shell échoue

Transférer des fichiers en utilisant lftp dans un script bash