la estructura for en shell
- for i in LIST : i representa la variable a repetir en cada iteracion de LIST
- do COMMANDES :representa los comandos a ejecutar
- done : indica el fin del boucle for
para nuestro ejemplo usaremos dos matriz
#creation d'un tableau de type chaine de caractères
montab=("val1" "val2" "val3" "val4");
#creation d'un tableau des types multiple
montab2=("zero" 1 `pwd` 3);
Ejemplo de uso de la structure for
#nombre des éléments
NOMELEMT=${#montab[@]}
printf "le nombre des elements sur le tableau est=${NOMELEMT} \n"
- ${#montab[@]} : sintaxis que recupera la cantidad total de elementos en una matriz
#iteration for 1
for i in ${montab[@]};
do
printf "$i \n\n";
done;
- imprimir el contenido de cada element del array montab
- printf "$i \n\n": uso de dos espacios \n entre cada iteracion
echo "iteration2"
#iteration 2
for i in ${montab2[*]};
do
printf "result=$i \n";
done;
- ${montab2[*]} manera alternativa de recuperar el numero total de elemntos del array montab2
resultado de le script
forma 2
la estructura for puede utilisarse en una forma simplificada , recuperando los elementos de iteracion directamente de la consola
Ejemplo3
#!/bin/bash
#affichage des valeurs recuperées de la console
#iteration 1
echo "iteration1"
for i
do
printf "la valeur passé en paramètre est = $i \n\n";
done;
- for i : al no estar declarada , el valor de i sera el conjunto de elementos pasados en parametro desde la consola
- do COMMANDE :ejecucion iterativa del comando deseado
- done;
Result:
el resultado de la ejecution ./forex2.sh zero un 2 3 esta compuesto de 4 elementos guardados en una especia de array i , que sera iterada:
#!/bin/bash
#affichage des tous les utilsateurs du systeme
compgen -u
#iteration 1
echo "start boucle"
for i in "$@"
do
printf "le utilisateur est "
id -u "$i"
done;
- for i in "$@" : permite recuperar la totalidad de argumentos pasados en parametro en la variable i
- compgen -u : permite listar todos los utilisadores del systema
- "$@": permite aceptar espacion como parametro de entrada
resultado
Aucun commentaire:
Enregistrer un commentaire