<Anterior | Conteúdo | Próxima>
Expressões de string
As seguintes expressões são usadas para avaliar strings:
Tabela 27-2: Expressões de string de teste
A expressão é verdadeira se ...
A expressão é verdadeira se ...
corda corda não é nulo.
-n corda O comprimento do corda é maior que zero.
-z corda O comprimento do corda é zero.
string1 = string2 string1 == string2
string1 e string2 são iguais. Podem ser usados sinais de igual simples ou duplos, mas o uso de sinais de igual duplos é bastante preferido.
string1 != string2 string1 e string2 não são iguais. string1 > string2 string1 classifica depois string2. string1 < string2 string1 classifica antes string2.
Aviso: > e < operadores de expressão devem ser colocados entre aspas (ou escapados com uma barra invertida) quando usados com teste. Se não forem, serão interpretados pelo shell como operadores de redirecionamento, com resultados potencialmente destrutivos. Observe também que, embora o bater a documentação afirma que a ordem de classificação está de acordo com a ordem de agrupamento do local atual, não. A ordem ASCII (POSIX) é usada nas versões de bater até e incluindo 4.0.
Aqui está um script que incorpora expressões de string:
#! / Bin / bash
# test-string: avalie o valor de uma string ANSWER = Maybe
if [-z "$ ANSWER"]; então
echo "Não há resposta." > & 2 saída 1
fi
if ["$ ANSWER" = "sim"]; em seguida, eco "A resposta é SIM."
elif ["$ ANSWER" = "não"]; em seguida, echo "A resposta é NÃO."
elif ["$ ANSWER" = "talvez"]; em seguida, echo "A resposta é TALVEZ."
outro
echo "A resposta é DESCONHECIDA."
fi
#! / Bin / bash
# test-string: avalie o valor de uma string ANSWER = Maybe
if [-z "$ ANSWER"]; então
echo "Não há resposta." > & 2 saída 1
fi
if ["$ ANSWER" = "sim"]; em seguida, eco "A resposta é SIM."
elif ["$ ANSWER" = "não"]; em seguida, echo "A resposta é NÃO."
elif ["$ ANSWER" = "talvez"]; em seguida, echo "A resposta é TALVEZ."
outro
echo "A resposta é DESCONHECIDA."
fi
Neste script, avaliamos a constante RESPONDA. Primeiro determinamos se a string está vazia. Se for, encerramos o script e definimos o status de saída para um. Observe o redirecionamento que é aplicado ao comando echo. Isso redireciona a mensagem de erro “Não há resposta”. ao erro padrão, que é a coisa certa a fazer com mensagens de erro. Se a string não estiver vazia, avaliamos o valor da string para ver se é igual a “sim”, “não” ou “talvez”. Fazemos isso usando elif, que é a abreviatura de "else if". Usando elif, somos capazes de construir um teste lógico mais complexo.