V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

while

Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla. Algunos scripts ilustrativos:

1.-

#!/bin/bash
RESPUESTA=s
while [ $RESPUESTA = s ]
do
echo "Introducir nombre: "
read NOMBRE
echo "Hola $NOMBRE"
echo
echo "¿Desea continuar? (s/n)"
read RESPUESTA
done

2.-

#!/bin/bash
while [ "$OPCION" != 5 ]
do
echo
echo "[1] Listar directorio"
echo "[2] Directorio donde te encuentras"
echo "[3] fecha de hoy"
echo "[4] Usuarios conectados"
echo "[5] Salir"
echo
read -p "Ingrese una opción: " OPCION
echo
case $OPCION in
1) ls;;
2) pwd;;
3) date +%D ;;
4) who;;
5);;
*) echo "Opción ingresada no valida, intentelo de nuevo";;
esac
done
exit 0

3.-

#!/bin/bash
# imprimir números del 1 al 10
LIMITE=10
a=1
while [ "$a" -le $LIMITE ]
do
echo "$a "
let "a+=1"
done

4.-

Leer un archivo linea a linea:

#!/bin/bash
while read linea
do
echo "---> $linea "
done < archivo.txt

5.-

Especificando un separador [:]

#!/bin/bash
while IFS=: read user pass uid gid full home shell
do
echo -e "$full :\n\
Pseudo : $user\n\
UID :\t $uid\n\
GID :\t $gid\n\
Home :\t $home\n\
Shell :\t $shell\n\n"
done < /etc/passwd

6.-

Leer un archivo pasado como parámetro, descartar las lineas en blanco y colorear alternativamente las siguientes en amarillo y rojo.

#!/bin/bash
COLOR=1
while read linia
do
if [ -z "${linia}" ]
then
continue
fi
if [ $COLOR -eq 0 ]
then
echo -e "\e[1;30;41m$linia\033[0m" #VERMELL - 0
COLOR=1
else
echo -e "\e[1;30;43m$linia\033[0m" #GROC - 1
COLOR=0
fi
done < $1
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
1837 entradas - Acerca del Tractatus
La Pipa Plena 2018