A ferramenta Unix para corresponder uma string a um regexp é expr
:
if expr "$maddr" : '..*@.*\...' > /dev/null; then...
(observe que expr
regexps estão implicitamente ancorados no começo)
Embora, neste caso, a correspondência simples de padrões de shell seja suficiente:
case $maddr in
?*@*.??*) ...
esac
Observe que alguns shells, como zsh
, ksh93
e bash
, incorporaram operadores de correspondência regexp como uma extensão acima da sintaxe sh
padrão, mas a sintaxe varia ligeiramente entre eles.
pattern='.@.*\...'
if [[ $maddr =~ $pattern ]]; then...
Deve funcionar nos três.
(observe que esses padrões não garantem um endereço de e-mail válido).