158 votes

Lecture de la sortie d'une commande dans un tableau dans Bash

J'ai besoin de lire la sortie d'une commande dans mon script dans un tableau. La commande est, par exemple :

ps aux | grep | grep | x 

et il donne la sortie ligne par ligne comme ceci :

10
20
30

J'ai besoin de lire les valeurs de la sortie de la commande dans un tableau, puis je vais faire un peu de travail si la taille du tableau est inférieure à trois.

108voto

Michael Schlottke Points 1759

Vous pouvez utiliser

my_array=( $(<command>) )

pour stocker la sortie de la commande <command> dans le tableau my_array.

Vous pouvez accéder à la longueur de ce tableau en utilisant

my_array_length=${#my_array[@]}

Maintenant, la longueur est stockée dans my_array_length.

-1voto

Usman Ali Maan Points 128

Cela m'aide tout le temps à supposer que vous souhaitiez copier toute la liste des répertoires dans le répertoire actuel dans un tableau

bucketlist=($(ls))
#then print them one by one
for bucket in "${bucketlist[@]}"; do
echo " here is bucket: ${bucket}"
done

-3voto

Cela créera un tableau de tous les fichiers .js

output=$(find ./src/components/ -type f -name "*.js" -print)


#loop output_array
for i in "${output[@]}"
do
  printf "$i"
done

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X