Como verificar se uma string contém um personagem especial ou não em bash

if [[ $str =~ ['!@#$%^&*()_+'] ]]; then
    echo yes
else
    echo no
fi
Brainy Butterfly