Primeiro, aqui está um script de exemplo simples que não ignora maiúsculas e minúsculas:
#!/bin/bash
if [ $(echo hello) == hello ]; then
echo it works
fi
Tente alterar a cadeia olá à direita e não deverá mais ecoar it works
. Tente substituir echo hello
por um comando de sua escolha. Se você quiser ignorar maiúsculas e minúsculas e nenhuma string contiver uma quebra de linha, você pode usar o grep:
#!/bin/bash
if echo Hello | grep -iqF hello; then
echo it works
fi
A chave aqui é que você está canalizando uma saída de comando para grep
. A instrução if
testa o status de saída do comando mais à direita em um pipeline - nesse caso, grep. Grep sai com sucesso se e somente se encontrar uma correspondência.
A opção -i
do grep diz para ignorar o caso.
A opção -q
diz para não emitir saída e sair após a primeira partida.
A opção -F
diz tratar o argumento como uma string em vez de uma expressão regular.
Observe que o primeiro exemplo usa [ expression ]
, o que permite comparações diretas e vários operadores úteis. A segunda forma apenas executa comandos e testa seu status de saída.