[[ "$VAR" =~ "HI" ]]
answer do WAF aqui tem uma ótima solução bash
/ ksh
que é provavelmente o que você está procurando, mas no caso de alguém estar procurando uma solução portátil, aqui está como fazer isso de forma nativa dentro de um shell POSIX simples (a base /bin/sh
):
[ "$VAR" != "${VAR#*HI}" ]
Tenha cuidado, sintaxe de padrões de shell (também conhecido como "globbing") é diferente da sintaxe de expressão regular POSIX.
Isso compara o valor de $VAR
com a expansão do parâmetro ${VAR#*HI}
, que implementa remoção de substring para remover qualquer coisa no início até a primeira instância de" HI "(dado VAR="OHIO"
, ${VAR#*HI}
seria remover o primeiro OHI
e resultar em apenas O
. VAR="Hi, I am bob"
seria inalterado).
Devido à comparação !=
, o valor de retorno será verdadeiro ( 0
) quando as duas cadeias forem diferentes (ou seja, "HI" em $VAR
) e falso ( 1
) quando eles são iguais (ou seja, "HI" não existe em $VAR
).