Unix / Linux - Exemplo de operadores de string de shell

Os seguintes operadores de string são suportados pelo Bourne Shell.

Assumir variável a contém "abc" e variável b segura "efg" então -

Operador Descrição Exemplo
= Verifica se os valores de dois operandos são iguais ou não; se sim, então a condição se torna verdadeira. [$ a = $ b] não é verdade.
!= Verifica se os valores de dois operandos são iguais ou não; se os valores não forem iguais, a condição se torna verdadeira. [$ a! = $ b] é verdade.
-z Verifica se o tamanho do operando da string fornecido é zero; se tiver comprimento zero, ele retornará verdadeiro. [-z $ a] não é verdade.
-n Verifica se o tamanho do operando da string fornecido é diferente de zero; se o comprimento for diferente de zero, ele retornará verdadeiro. [-n $ a] não é falso.
str Verifica se strnão é a string vazia; se estiver vazio, retornará falso. [$ a] não é falso.

Exemplo

Aqui está um exemplo que usa todos os operadores de string -

#!/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

O script acima irá gerar o seguinte 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

Os seguintes pontos devem ser considerados ao usar o operador -

  • Deve haver espaços entre os operadores e as expressões. Por exemplo, 2 + 2 não está correto. Deve ser escrito como 2 + 2.

  • if...then...else...fi declaração é uma declaração de tomada de decisão que foi explicada no próximo capítulo.

operadores-unix-basic.htm