1.7 KiB
1.7 KiB
#Temario-BSA - Bash Scripting Avanzado Proveniente de Mecánica Unix - Manejo de la shell
Control de flujo
Condicionales if, elif, else y fi
if [[ "$num" -gt 10 ]]; then
echo "Mayor que 10"
elif [[ "$num" -eq 10 ]]; then
echo "Es 10"
else
echo "Es menor que 10"
fi
[[ . . . ]]
if [[ "$x" == "hola" && -n "$x" ]]; then
echo "coincide"
fi
! (negación)
if ! grep -q "hola" archivos.txt; then
echo "no existe hola"
fi
case...in...esac
case $option in
start) echo "iniciando";;
stop) echo "Finalizando";;
*) echo "Opción no válida";;
esac
for, in, do, done (Bucles)
for i in 1 2 3; do
echo "numero $i"
done
while, until (Bucles condicionales)
while [[ "$x" -lt 5 ]]; do
echo $x
((x++))
done
until [[ "$x" -eq 5 ]]; do
echo $x
((x++))
done
select (Menú interactivo)
select opcion in Start Stop Exit; do
echo "Elegiste la opcion $opcion"
done
Contador de longitud
validador() {
local passwd=$1
local long=${#passwd} # Para leer longitud de un dato, se usa ${#variable}
if [[ "$long" -gt 8 ]]; then
echo "PWD_GT_8"
else
echo "PWD_LT_8"
fi
}
Verificación de mayúsculas, minúsculas, números y caracteres especiales
Se utiliza el comparador de valores regex (=~) en conjunto con los valores regex:
¿Minúscula?
[[ "Hola123" =~ [a-z] ]] # true
¿Mayúscula?
[[ "Hola123" =~ [A-Z] ]] # true
¿Números?
[[ "abc123def" =~ [0-9] ]] # true
¿Caracteres especiales?
[[ "asd1!213das" =~ [^a-zA-Z0-9] ]] # true