Diferencia entre corchetes simples y dobles en Bash
-
Corchetes simples
[ ]
en Bash -
Corchetes dobles
[[ ]]
en Bash - Diferencias 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.