Files

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