Sentencia If
Parte de la sección Fundamentos del Journey de Terminal de Coddy. Lección 70 de 82.
Hasta ahora, tus scripts ejecutan cada comando de arriba abajo sin tomar ninguna decisión. Pero ¿qué pasa si quieres que tu script haga cosas diferentes según ciertas condiciones? Ahí es donde entra en juego la instrucción if.
La instrucción if permite que tu script tome decisiones. Comprueba si una condición es verdadera y, si lo es, ejecuta un bloque de código. Esta es la estructura básica:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiLa condición va dentro de corchetes, con espacios a su alrededor. La palabra clave then marca el inicio del código que se ejecutará, y fi (si se escribe al revés) termina la instrucción.
También puedes manejar el caso en el que la condición sea falsa usando else:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiLos operadores de comparación comunes para números incluyen -eq (igual), -ne (distinto), -gt (mayor que), -lt (menor que), -ge (mayor o igual), y -le (menor o igual). Para las cadenas, usa = para la igualdad y != para la desigualdad.
Recuerda incluir siempre espacios dentro de los corchetes y entrecomillar tus variables para evitar errores con valores vacíos.
Desafío
FácilCrea un script de shell llamado check_score.sh que use una sentencia if para evaluar una puntuación.
Tu script debe:
- Comenzar con la línea shebang (
#!/bin/bash) - Crear una variable llamada
scorecon el valor75 - Usar una sentencia if para comprobar si la puntuación es mayor o igual que 70
- Si es verdadero, imprimir:
You passed! - Si es falso, imprimir:
You failed.
Haz que el script sea ejecutable y ejecútalo. Como la puntuación es 75, tu salida debe ser:
You passed!Pista: Recuerda usar
-gepara la comparación de «mayor o igual que», incluir espacios dentro de los corchetes y terminar la sentencia if confi.Aquí no hay un editor de archivos, así que escribe el archivo directamente desde el shell con un documento aquí: escribe
cat > check_score.sh << 'EOF', después las líneas del script y, finalmente, una última línea que contenga únicamenteEOF.
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Directorios
Crear Un DirectorioCopiar Un DirectorioMover Y Renombrar Un DirectorioEliminar Un DirectorioResumen - Operaciones Con Directorios7Contenido de Archivos
Head y TailConteo de PalabrasComando SortComando UniqGrep BásicoGrep con FlagsResumen - Detective de Texto10Proyecto Analizador de Registros
Resumen del ProyectoVisualizando el Archivo de Registro13Fundamentos de Scripting en Shell
Qué es un Script de ShellCrear y Ejecutar un ScriptVariables en ScriptsEntrada de Usuario en ScriptsSentencia IfBucle ForBucle WhileRepaso - Adivina el Número2Navegación
Imprimir Directorio de TrabajoListar ArchivosCambiar de DirectorioRutas Absolutas vs RelativasDirectorio Home y RaízRepaso - Encuentra tu Camino8Redirección
Salida EstándarSobrescribir en un ArchivoAnexar a un ArchivoEntrada EstándarError EstándarResumen - Constructor de Registro11Permisos
Entendiendo PermisosLeyendo PermisosChmod con NúmerosChmod con SímbolosPropiedad de ArchivosResumen - Bloquéalo14Proyecto de Script de Copia de Seguridad
Visión General del ProyectoObteniendo la Ruta de Origen3Archivos
Crear un ArchivoLeer un ArchivoCopiar un ArchivoMover y Renombrar un ArchivoEliminar un ArchivoResumen - Operaciones con Archivos6Comodines y Patrones
El comodín asteriscoEl comodín interroganteComodines de corchetesCombinando comodinesRepaso - Operaciones selectivas9Tuberías
Qué es una tuberíaEncadenando dos comandosEncadenando múltiples comandosTubería con GrepResumen - Tubería de datosPractica por tu cuenta: Playground de Terminal