jeudi 21 juin 2018

La estructura While en shell




la estructura While  en shell

Ejemplo1

La idea sera poder leer linea por linea(incluyendo espacion entre palabras de una misma linea) el contenido de un fichier de texto a travez de una estructura while
compgen -u >result.txt
sleep 1;
TOTAL=`cat result.txt | wc -l`
sleep 1;
echo "go.. number total =$TOTAL"
INDEX=-1;


  • compgen -u >result.txt: permite recuperar la lista de usuarios del systema y guardar el resultado en un fichier de texto  usando una redireccion >
  • `cat result.txt | wc -l`: permite recuperar el numero total de lineas del archivo result.txt y guardar el resultado inetger en una variable llamada TOTAL


while read -r SOME_VAR;
do
INDEX=$((1+INDEX))
echo "element $INDEX = $SOME_VAR"
done < result.txt


  • while read -r SOME_VAR : permite guardar en la variable SOME_VAR el contenido de una linea
  • done < result.txt : permite alimentar la boucle haciendo una redireccion en entrada utilisando un fichier de texto  result.txt

Resultado






mercredi 20 juin 2018

la estructura for en shell




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:





Otros ejemplos


#!/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