Cómo verificar si una cadena contiene un carácter especial o no en Bash

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