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).