Página principal » cómo » Guía para principiantes de Shell Scripting 4 Condiciones y declaraciones de si-entonces

    Guía para principiantes de Shell Scripting 4 Condiciones y declaraciones de si-entonces

    Hemos cubierto suficientes aspectos básicos de nuestra guía sobre shell scripts para que usted se sienta cómodo experimentando. En la entrega de esta semana, abordaremos algunas de las cosas más divertidas, como las condiciones y las afirmaciones "si-entonces".

    Cuales son las condiciones?

    En el lenguaje cotidiano, decimos que las condiciones son requisitos que deben cumplirse para que algo ocurra. Para que mi computadora portátil pueda conectarse a Internet, hay varias condiciones que deben cumplirse, como tener un ISP, que el módem y / o el enrutador estén encendidos, que mi computadora portátil esté encendida, etc. Es bastante simple, y si la hay de estos requisitos no se cumplen, el resultado - mi computadora portátil que se conecta a Internet - no sucede.

    Las condiciones en el ámbito de la computación funcionan de manera similar. Podemos probar si una cadena coincide con otra cadena, si no coincide con otra cadena, o incluso si existe. De manera similar, podemos probar los argumentos numéricos para ver si uno es mayor que, menor o igual que otro. Para lograr que algo suceda después de que se cumplan las condiciones de la prueba, usamos las declaraciones "si-entonces". Su formato es bastante simple..

    si CONDICIÓN
    entonces
    comando1
    comando2
    ...
    comando
    fi

    Si las declaraciones

    Vamos a ejecutar un pequeño script de prueba, vamos?

    si prueba $ 1 -gt $ 2
    entonces
    echo "$ 1 es mayor que $ 2"
    fi

    Notará que solo cuando esa condición sea verdadera, la secuencia de comandos ejecutará el siguiente comando. De lo contrario, la instrucción "if" se cerrará. Si hay algún comando después de la instrucción "if", se ejecutarán normalmente. Agregué la siguiente línea al final de nuestro script anterior para ilustrar esto:

    echo "Esto viene después de la sentencia if"

    Aquí hay algunos otros operadores numéricos que tal vez quieras probar:

    • -eq: igual a
    • -ne: no es igual a
    • -lt: menos que
    • -le: menor o igual que
    • -gt: mayor que
    • -ge: mayor o igual que

    Cuerdas de prueba

    Ahora, si modificamos la primera línea de nuestro script para que sea esto:

    si prueba $ 1 = $ 2

    entonces la condición probará si los dos son iguales. ¡Pero hay una trampa aquí! El uso de un signo igual (=) compara dos cadenas y no números. Si desea comparar números, debe usar el operador "-eq" de manera similar a como usamos "-gt" arriba.

    Ahora, hagamos otra modificación:

    si prueba $ 1! = $ 2

    La inclusión del signo de exclamación (!) Actúa como un modificador "no". Es decir, solo ejecuta el siguiente comando cuando las dos cadenas no coinciden.

    Aquí hay una lista de algunas pruebas más basadas en cadenas que puede usar:

    • cadena: usar solo un argumento por sí mismo comprueba si la cadena no está en blanco (nula) o no está definida de alguna manera
    • -n cadena: esto probará si la cadena no está en blanco y está definida
    • -cadena z: esto probará si la cadena está en blanco y está definida de esa manera

    Qué más sobre si?

    Admito que el título de la sección fue definitivamente un mal juego de palabras. Está bien, sabemos cómo ejecutar un comando si una prueba es verdadera, pero ¿qué pasa si queremos ejecutar un comando diferente si es falso? Podemos juntarlos fácilmente agregando una sección a nuestras declaraciones "si-entonces" - una "otra cosa"!

    si CONDICIÓN
    entonces
    comando1
    comando2
    ...
    comando
    más
    comando1
    comando2
    ...
    comando
    fi

    Vamos a armar un guión simple.

    Hay todo con la sangría adecuada. Si observa detenidamente, notará que usamos corchetes ([y]) en lugar del comando de prueba. Son funcionalmente equivalentes para nuestros propósitos, y es mucho más probable que veas los corchetes por varios motivos, por lo que los usaremos de ahora en adelante..

    Aquí es cómo se verá la salida:

    Es fácil!

    Qué hago ahora?

    Ahora que sabe cómo usar las declaraciones "if-then-else", puede ejecutar scripts que pueden realizar pruebas. Por ejemplo, puede ejecutar un script que calculará un hash md5 de un archivo y luego lo comparará con el que descargó en un archivo para ver si coinciden..

    Para algunos puntos de bonificación, puede crear un script que tenga un bucle "for", pero que use condiciones de prueba en lugar de leer líneas de un archivo de lista ...


    Estamos llegando a algunas de las partes más interesantes de nuestra Guía para principiantes de Shell Scripting. Si te perdiste las lecciones anteriores, aquí tienes una lista rápida para que puedas revisar:

    1. Los fundamentos de Shell Scripting
    2. Usando For Loops
    3. Más comandos básicos
    4. ¿Cuáles son las diferencias entre los shells de Linux??
    5. Cómo usar las expresiones regulares básicas

    Si ha creado o usado secuencias de comandos que utilizan condiciones de prueba, declaraciones en caso de que exista lo contrario y bucles "para", compártalas con nosotros en los comentarios.!