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