50% de descuento Todos los planes, tiempo limitado. A partir de $2.48/mo
Quedan 10 minutos
Servidores y SO

Declaración Bash If: sintaxis, variaciones, casos de uso, comandos y más.

Pío Bodenmann By Pío Bodenmann 10 minutos de lectura Actualizado el 28 de enero de 2024
secuencias de comandos bash

En los scripts de shell, las declaraciones if de Bash desempeñan un papel crucial al permitir a los programadores crear rutas de ejecución condicionales basadas en diferentes situaciones. Básicamente, las declaraciones si nos permiten tomar decisiones dentro de los scripts Bash, considerando factores como los resultados de las pruebas, la entrada del usuario o los estados del sistema. Es como una forma de navegar a través de diferentes posibilidades.

Cuando se utilizan secuencias de comandos Bash, una declaración if sigue una estructura específica. Por lo general comienza con el "if"Palabra clave, seguida de la condición que necesita evaluación, la "entonces"Palabra clave y uno o más comandos para ejecutar si la condición es verdadera.

Para hacer las cosas más flexibles, la declaración if también puede incluir un “opcional”elif"(else if), que entra en juego cuando la condición inicial es falsa. Nos permite probar una condición adicional y proceder en consecuencia. Además, la declaración if puede tener una declaración opcional "else", que se ejecuta si ninguna de las condiciones es verdadera.

Al combinar declaraciones if con otros comandos Bash y funciones de secuencias de comandos de shell, los programadores pueden crear secuencias de comandos avanzadas capaces de automatizar tareas y procesos complejos. ¡Quédese para descubrir más sobre la declaración if de Bash, incluida su sintaxis, casos de uso y ejemplos!

Sintaxis de la declaración Bash If

La sintaxis de Bash se refiere a las reglas que gobiernan la estructura y la gramática de los comandos y scripts escritos en el lenguaje shell Bash. La sintaxis de Bash incluye una variedad de construcciones y elementos, como:

  • Comandos: Estos son los programas ejecutables individuales o elementos integrados del shell que se utilizan para realizar tareas específicas. Pasarás la mayor parte del tiempo trabajando con la programación Bash con estas hermosas líneas.
  • Argumentos: son valores que se pasan a comandos para especificar opciones, parámetros o datos de entrada. Piense en ellos como condiciones que se establecen para que un comando especifique sus parámetros de ejecución.
  • variables: Son símbolos que representan valores que se pueden asignar, manipular o utilizar en expresiones. Se utilizan comúnmente para determinar los valores con los que deben lidiar tanto los comandos como los argumentos.
  • Redirección: este es el proceso de redirigir entradas, salidas o errores hacia o desde archivos, dispositivos u otros comandos. Sin estos, existe una alta probabilidad de que sus comandos apunten al destino incorrecto y estropeen su código.
  • Tubería: Este es un mecanismo para conectar la salida de un comando a la entrada de otro comando. Generalmente se utilizan para ejecutar líneas de comando condicionales avanzadas en programas grandes y para crear líneas de comando entretejidas.
  • Estructuras de control: Son construcciones que controlan el flujo de ejecución de comandos, como bucles, condicionales y funciones. Comprender la estructura de control es clave para crear líneas de comando novedosas y le da otro nivel de profundidad a su código.
  • Comentarios: Estas son anotaciones que el shell ignora y se utilizan para documentar el código o proporcionar explicaciones. Estos son puntos de referencia importantes al realizar análisis y depuración, especialmente en proyectos grupales.

La sintaxis de Bash debe escribirse correctamente para que el shell interprete y ejecute comandos. Los errores de sintaxis pueden hacer que el shell produzca mensajes de error o comportamientos inesperados.

Aquí está la declaración Bash if en acción:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

En el caso que tenemos aquí, la “condición” se refiere a una prueba que produce un resultado verdadero o falso. Cuando la condición es verdadera, se ejecutan los comandos posteriores especificados después de la palabra clave "entonces". Ahora, digamos que queremos evaluar una condición adicional. Podemos utilizar la palabra clave "elif" para hacer esto. Proporciona una manera de considerar otra posibilidad. Ahora, si ninguna de las condiciones se cumple, entran en juego los comandos especificados después de la palabra clave "else". Es como un plan alternativo. Por último, para indicar la conclusión de la declaración if, utilizamos la palabra clave "if".

¿Cómo funcionan las declaraciones Bash?

Cuando se trata de secuencias de comandos Bash, la declaración if resulta bastante útil para guiar el flujo de la secuencia de comandos en función del resultado de una prueba condicional. Su propósito gira en torno a evaluar una condición y, si se determina que es cierta, ejecutar un conjunto específico de comandos.

Ahora, echemos un vistazo a cómo se desarrollan las cosas normalmente cuando una declaración if entra en juego dentro de un script Bash. El script se toma un momento para evaluar la condición mencionada en la declaración if. Si la condición resulta ser cierta, los comandos incluidos en el bloque "entonces" encuentran su turno para ejecutarse.

Sin embargo, si la condición resulta ser falsa, el script continúa evaluando cualquier condición elif adicional. Si alguna de estas condiciones se cumple, los comandos del bloque elif correspondiente avanzan para ejecutarse. En los casos en los que ninguna de las condiciones especificadas en las declaraciones if y elif parezca ser verdadera, el script lo reconoce y procede a ejecutar los comandos especificados dentro del bloque else (si se ha incluido un bloque else).

Básicamente, la declaración if sirve como un medio para facilitar la toma de decisiones dentro de un script, permitiéndole atravesar diferentes rutas de ejecución según el resultado de la prueba. La prueba en sí puede tener en cuenta varios factores, como el resultado de un comando o el valor asignado a una variable.

Declaración Bash If ejemplificada

Ahora salgamos de la teoría básica y veamos cómo se puede utilizar una declaración if de Bash en un desarrollo activo de la codificación. Aquí hay un ejemplo que demuestra cómo funciona una declaración Bash if:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

En este ejemplo, la declaración if evalúa el valor de la variable x. Si x es mayor que 4, el script ejecuta el comando para imprimir "x es mayor que 4". Si x es menor o igual a 4, el script ejecuta el comando para imprimir "x es menor o igual a 4".

Ahora que tiene un conocimiento sólido de la declaración If de Bash y cómo funciona, profundicemos en las variaciones y los comandos relacionados y aprendamos más sobre las declaraciones If básicas, las declaraciones If anidadas, Bash If Else, If Elif Else y las declaraciones Case una por una.

Declaraciones If básicas

Comencemos con la declaración básica de bash if. La declaración if en Bash verifica si una condición es verdadera y ejecuta un bloque de códigos relacionados en consecuencia. Aquí está la sintaxis:

if [ condition ]
then
  commands
fi

En el caso que tenemos aquí, el script evalúa la condición y, si es verdadera, se ejecutan los comandos especificados. Si la condición es falsa, el script pasa al siguiente comando sin ejecutar el bloque dentro de la sección "entonces".

Declaraciones If anidadas

Una declaración if anidada, como lo indica el nombre de la creatividad, es una declaración if que está "anidada" dentro de otra declaración if. Esta estructura anidada permite pruebas y análisis más complejos dentro de un script. Aquí hay un ejemplo de una declaración if anidada:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Puede ver en los comandos que el script evalúa la condición1 como primer paso. Si la condición1 se verifica como verdadera, entonces evalúa la condición2. Si la condición2 también es verdadera, entonces el script ejecuta los comandos necesarios.

Declaraciones Bash If Else

La declaración if else de Bash le permite tomar decisiones dentro de su script en función de si una condición es verdadera o falsa, lo que permite una ejecución de código situacional más avanzada. Así es como se ve la estructura:

if [ condition ]
then
  commands1
else
  commands2
fi

Esta construcción garantiza que, si la condición se cumple, su secuencia de comandos ejecute rápidamente "comandos1". Sin embargo, si la condición es falsa, cambiará para ejecutar "comandos2".

Si Elif Else Declaraciones

A veces, es necesario considerar múltiples condiciones y sus respectivos resultados. La declaración if elif else le permite lograr precisamente eso. Observe la siguiente sintaxis:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Aquí, su script evalúa primero la condición 1. Si se verifica que es cierto; ejecutará rápidamente los comandos1. Sin embargo, si la condición1 es falsa, el script pasa a evaluar la condición2. Si la condición2 es verdadera, procede a ejecutar los comandos2. Y si tanto la condición1 como la condición2 resultan ser falsas, su secuencia de comandos optará por la alternativa, que es ejecutar comandos3.

Declaraciones de casos

En Bash, tiene la declaración case, que funciona de manera similar a una declaración switch que se encuentra en otros lenguajes de programación. Proporciona una forma de ejecutar diferentes conjuntos de comandos según el valor de una variable. Eche un vistazo a la estructura:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Aquí, el script evalúa la variable de expresión y la compara con varios patrones. Cuando se encuentra una coincidencia, se ejecuta el conjunto de comandos correspondiente. Sin embargo, si no se encuentra ninguna coincidencia, los comandos predeterminados se ejecutan correctamente. El patrón de asterisco (*) actúa como comodín y coincide con cualquier cosa que no se haya cubierto.

Operadores lógicos Bash

Otra parte importante de las maquinaciones de declaraciones if de Bash es el operador lógico. Estos operadores le permiten combinar múltiples condiciones, permitiéndole tomar decisiones basadas en la verdad o falsedad de estas condiciones combinadas. Bash incorpora tres operadores lógicos principales para su uso en declaraciones if. A continuación se muestran ejemplos de los tres tipos principales de comandos de operador lógico.

  • Golpe Y (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Lógico o (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • No es igual a:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Conclusión

En esta publicación de blog, proporcionamos una guía introductoria sobre las declaraciones if de Bash y cómo usarlas. También discutimos cómo pueden hacer que su código sea mucho más ordenado y funcional. Al utilizar estas declaraciones condicionales de forma eficaz, puede crear scripts potentes que sean capaces de manejar tareas y toma de decisiones complejas.

¿Eres nuevo en el mundo de Linux? ¡Seamos su luz guía en este emocionante viaje! Nuestro VPS Linux Es el punto de partida perfecto para principiantes, ya que ofrece simplicidad sin sacrificar potencia. Con interfaces fáciles de usar y soporte experto, le resultará más fácil que nunca aprovechar las capacidades de un servidor Linux. Ya sea que esté configurando un sitio web, probando aplicaciones o explorando el vasto mundo de Linux, nuestro VPS Linux proporciona un entorno seguro y sin complicaciones. Da tus primeros pasos en el universo Linux con confianza: ¡consulta nuestras opciones de VPS Linux hoy y embárcate en tu aventura Linux!

Alojamiento VPS Linux

Consiga un VPS Linux económico o premium para alojar su sitio web o escritorio remoto, al precio más barato que existe. VPS que se ejecuta en Linux KVM para una mayor eficiencia y funciona en hardware potente con almacenamiento SSD NVMe para una mayor velocidad.

Leer más

Preguntas frecuentes

¿Puedo usar operadores lógicos en declaraciones if de Bash?

Sí, puede utilizar operadores lógicos como '&' y '||' en Bash declaraciones if. Por ejemplo, si [ $var -gt 0 ] && [ $var -lt 10 ]; entonces … ejecutará el bloque de código si $var es mayor que 0 y menor que 10.

¿Puedo usar varias condiciones en una sola declaración if?

Sí, puede usar Bash si tiene varias condiciones en una sola declaración if utilizando operadores lógicos como -a (Y) o -o (O) combinarlos. Por ejemplo, si [ $var -gt 0 -a $var -lt 10 ]; entonces … ejecutará el bloque de código si $var es mayor que 0 Y menor que 10.

¿Puedo usar la sustitución de comandos en declaraciones if de Bash?

Sí, puede usar la sustitución de comandos en Bash si las declaraciones incluyen el comando entre $() o comillas invertidas (). Por ejemplo, si [ $(whoami) == “raíz” ]; entonces … ejecutará el bloque de código si el usuario actual es root.

[[ vs [ vs ( vs ((: ¿Cuál es la diferencia entre estos operadores Bash?

En resumen, [[ se utiliza para pruebas condicionales avanzadas. [ se utiliza para pruebas condicionales básicas. ( se utiliza para agrupación de subcapas y ejecución de comandos. (( se utiliza para operaciones aritméticas.

 

Compartir

Más del blog

Sigue leyendo.

Las mejores aplicaciones autohospedadas que puede ejecutar con Imagen de portada de Cosmos Cloud con paneles de aplicaciones alrededor de un panel de Cosmos.
Servidores y SO

Las mejores aplicaciones autohospedadas que puede ejecutar con Cosmos Cloud: archivos, medios, contraseñas, automatización y más.

Tal vez hayas configurado Cosmos Cloud y ahora quieras ver qué aplicaciones combinan bien con él, o tal vez aún no te hayas decidido por Cosmos y solo quieras ver qué tan bien se adapta a tu trabajo.

Nick PlataNick Plata 16 minutos de lectura
Portainer vs Cosmos Cloud para administrar aplicaciones Docker cubren un diagrama de configuración híbrida y operaciones de neón frente a bloques de acceso.
Servidores y SO

Portainer vs Cosmos Cloud: la mejor opción para la gestión de aplicaciones Docker

Si ya conoce Docker y solo desea una forma más limpia de ejecutar una pila de aplicaciones en crecimiento, aquí está la respuesta breve a Portainer vs Cosmos Cloud. Portainer es la elección más fuerte para la dirección

Nick PlataNick Plata 14 minutos de lectura
Gráfico de características de Cosmos Cloud, CasaOS y Umbrel que muestra tres rutas autohospedadas dentro de un mundo abstracto de red en la nube.
Servidores y SO

Cosmos Cloud vs CasaOS vs Umbrel: ¿Qué plataforma autohospedada se adapta a su configuración?

La respuesta corta es que CasaOS sigue siendo el lugar más fácil para comenzar, Umbrel tiene la sensación más limpia y Cosmos Cloud tiene más sentido una vez que desea un control más estricto sobre el dominio.

Nick PlataNick Plata 11 minutos de lectura

¿Listo para implementar? Desde $2,48/mes.

Nube independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolución de dinero en 14 días.