Diferencia entre corchetes simples y dobles en Bash

Fumbani Banda 30 enero 2023
  1. Corchetes simples [ ] en Bash
  2. Corchetes dobles [[ ]] en Bash
  3. Diferencias entre corchetes simples y dobles en Bash
Diferencia entre corchetes simples y dobles en Bash

Este tutorial explica qué son los corchetes simples y los corchetes dobles en Bash y sus diferencias.

Corchetes simples [ ] en Bash

Un solo corchete cuadrado [, es otro nombre para el comando test en el shell Bash. El comando test es una utilidad estándar en todos los shells POSIX. El ] es el último argumento para [.

Los dos scripts a continuación muestran que el comando [ y test es similar. El primer script usa los corchetes simples para verificar si el valor en la variable $y es mayor que el valor en la variable $x e imprime la salida dependiendo de los resultados devueltos de la evaluación en el comando test.

En nuestro caso, el valor de la variable $y es mayor que el valor de la variable $x.

#!/bin/bash

x=2
y=3

if [ $y -gt $x ]
then
    echo "$y is greater than $x"
else
    echo "$x is greater than $y"
fi

El script imprime el siguiente mensaje en la salida estándar cuando se ejecuta.

3 is greater than 2

Esta secuencia de comandos utiliza el comando test en lugar de los corchetes individuales. El script comprueba si el valor de la variable $y es mayor que el valor de la variable $x.

Si test devuelve verdadero, el script ejecuta el primer comando echo, y si test devuelve falso, ejecuta el comando echo en la sección else.

En nuestro caso, la variable $y tiene un valor de 3 mayor que la variable $x, 2. El script ejecutará el primer comando echo.

#!/bin/bash

x=2
y=3

if test $y -gt $x
then
    echo "$y is greater than $x"
else
    echo "$x is greater than $y"
fi

El script imprime la siguiente salida en la salida estándar.

3 is greater than 2

Corchetes dobles [[ ]] en Bash

Los corchetes dobles [[]] amplían el comando test adoptado de ksh88; es más versátil. Los corchetes dobles se pueden usar para la coincidencia de patrones, la expansión de parámetros y no permiten la división de palabras.

El uso de corchetes dobles ayuda a evitar errores lógicos en los scripts de Bash. En los corchetes dobles, los operadores &&, ||, < y > funcionan mientras dan errores en el comando test.

Usamos corchetes dobles en el siguiente script para la evaluación aritmética. Los corchetes dobles comprueban si el valor de la variable $x es igual al valor de la variable $y.

La prueba devuelve verdadero y ejecuta el primer comando echo en el script.

#!/bin/bash

x=10
y=10

if [[ $x -eq $y ]]
then
    echo "\$x is equal to \$y"
else
    echo "\$x is not equal to \$y"
fi

Ejecutar el script produce el siguiente resultado en el terminal estándar.

$x is equal to $y

Diferencias entre corchetes simples y dobles en Bash

El comando test es una utilidad Bash incorporada en los shells POSIX estándar, mientras que los corchetes dobles no son un comando. El corchete doble es una extensión en Bash adaptada de ksh88 utilizada como palabra clave.

Los corchetes dobles admiten más funciones en comparación con el comando test. A diferencia del comando test, admite la coincidencia de patrones y la expansión de parámetros y no permite la división de palabras.

Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub