Unix / Linux - Ejemplo de operadores de cadenas de shell
Los siguientes operadores de cadena son compatibles con Bourne Shell.
Asumir variable a contiene "abc" y variable b sostiene "efg" entonces -
Operador | Descripción | Ejemplo |
---|---|---|
= | Comprueba si el valor de dos operandos es igual o no; si es así, entonces la condición se vuelve verdadera. | [$ a = $ b] no es cierto. |
!= | Comprueba si el valor de dos operandos es igual o no; si los valores no son iguales, la condición se cumple. | [$ a! = $ b] es cierto. |
-z | Comprueba si el tamaño del operando de cadena dado es cero; si es de longitud cero, devuelve verdadero. | [-z $ a] no es cierto. |
-n | Comprueba si el tamaño del operando de cadena dado es distinto de cero; si tiene una longitud distinta de cero, devuelve verdadero. | [-n $ a] no es falso. |
str | Comprueba si strno es la cadena vacía; si está vacío, devuelve falso. | [$ a] no es falso. |
Ejemplo
Aquí hay un ejemplo que usa todos los operadores de cadena:
#!/bin/sh
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a is equal to b"
else
echo "$a = $b: a is not equal to b"
fi
if [ $a != $b ]
then
echo "$a != $b : a is not equal to b"
else
echo "$a != $b: a is equal to b"
fi
if [ -z $a ]
then
echo "-z $a : string length is zero"
else
echo "-z $a : string length is not zero"
fi
if [ -n $a ]
then
echo "-n $a : string length is not zero"
else
echo "-n $a : string length is zero"
fi
if [ $a ]
then
echo "$a : string is not empty"
else
echo "$a : string is empty"
fi
El script anterior generará el siguiente resultado:
abc = efg: a is not equal to b
abc != efg : a is not equal to b
-z abc : string length is not zero
-n abc : string length is not zero
abc : string is not empty
Los siguientes puntos deben tenerse en cuenta al utilizar el operador:
Debe haber espacios entre los operadores y las expresiones. Por ejemplo, 2 + 2 no es correcto. Debe escribirse como 2 + 2.
if...then...else...fi declaración es una declaración de toma de decisiones que se explica en el capítulo siguiente.
operadores-básicos-unix.htm