• Blog
  • Cursos de Linux en Udemy
  • Certificaciones LPIC
  • Servidor de Discord
Antonio Sánchez CorbalánAntonio Sánchez Corbalán
  • Blog
  • Cursos de Linux en Udemy
  • Certificaciones LPIC
  • Servidor de Discord

¿Quieres aprender Linux?

¡Mira los mejores cursos de Linux!
  • Inicio
  • Blog
  • Linux
  • Estructuras condicionales en Shell Script: if y case

Estructuras condicionales en Shell Script: if y case

  • Categorías Linux, Shell Script
  • Fecha febrero 8, 2022

Las sentencias condicionales son estructuras de control que nos permiten ejecutar lineas de código solamente si se cumplen las condiciones que hemos especificado

Recuerda: Para construir condiciones es necesario conocer los comandos que nos permiten realizar operaciones lógicas.

La sentencia IF

Su forma más sencilla es:

if CONDICION; then
    comandos
fi 

Si la CONDICION es verdadera, ejecuta los comandos especificados, si es falsa, no hace nada.

A esto le podemos añadir que ejecute otras instrucción únicamente si la condición es falsa:

if CONDICION; then
	comandos
else
	otros comandos
fi

Y por último podemos encadenar distintas condiciones:

if CONDICION; then
	comandos
elif CONDICION; then
	otros comandos
else
	otros comandos distintos
fi

Ejemplo:

if [ $1 -lt 5 ]; then
	echo “el primer parámetro es menor que cinco”
elif [ $1 -gt 5 ]; then
	echo “el primer parámetro es mayor que cinco”
else
	echo “el primer parámetro es igual que cinco”
fi

El comando test es muy utilizado con if, pero esto no quiere decir que se imprescindible. Se puede usar cualquier comando o expresión bien formulada siempre que el resultado sea un valor que signifique verdadero o falso. Recuerdo que hay comandos que devuelven un valor indicando si su función ha tenido éxito o no. Esto es suficiente obtener un valor lógico. Un claro ejemplo es el comando grep que nos indica si ha encontrado alguna línea con el patrón que le pasamos o si no ha encontrado nada.

Ejemplo:

if $(grep -q ^juan: /etc/passd); then
	echo “El usuario Juan existe”
else
	echo “El usuario Juan NO existe”
fi

Nota: la opción -q de grep se usa para que no produzca ninguna salida. Es más cómodo que redirigirla con > /dev/null. La pega es que sí mostraría los errores (por ejemplo si el fichero no existe)

Estructura CASE

La sentencia case ejecutará unas instrucciones u otras en función del valor que encuentre en una variable o expresión. Es útil cuando la cantidad de valores a considerar es elevada ya que es una estructura muy legible y fácil de interpretar. En esta ocasión valor NO es un únicamente verdadero o falso, sino que contiene un dato y en función de él ejecutaremos una líneas u otras.

case valor in
         exp1)
             ...
             ultimaorden1;;
         exp2)
             ...
             ultimaorden2;;
         expN)
             ...
            ultimaordenN;;
  esac

En las expresiones podemos usar los mismos comodines que en los nombres de los ficheros: 
?, * , [..]

La ultima orden de cada bloque termina con doble punto y coma para indicar que termina el “CASE”

Ejemplo:

case $1 in
         "rm")
             echo "has elegido el comando borrar";;
         "cp")
             echo "has elegido el comando copiar";;
         "ls")
             echo "has elegido el comando listar";;
esac

Si queremos poner un valor de “default”, es decir, que se ejecute siempre que no se cumpla ninguno de los valores anteriores podemos usar el *

        *)
             echo "has elegido otro comando";;

Etiqueta:portada

  • Compartir:
A. Sánchez Corbalán
    Profesor de vocación. Desde hace más de 15 años imparto clases de informática a todo tipo de alumnado. También he trabajado como desarrollador web y administrador de sistemas Linux. Soy socio fundador de dos empresas tecnológicas que me ayudan a seguir evolucionando.

    Publicación anterior

    Operaciones aritméticas y lógicas en Shell Script
    febrero 8, 2022

    Siguiente publicación

    Los 50 mejores Comandos Linux del Shell Bash que debes conocer
    febrero 23, 2022

    Categorías

    • Linux
    • Shell Script
    • Soluciones
    • Tutoriales

    Todos los derechos reservados.

    • Privacy
    • Terms
    • Sitemap
    sanchezcorbalan.es utiliza cookies para mejorar la experiencia de los usuarios, facilitando la navegación por nuestra web. Para saber más sobre el uso que hacemos de las cookies, consulta nuestra Política sobre el uso de cookies.Aceptar
    Privacy & Cookies Policy

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
    Necesarias Siempre activado

    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.