これは Dash などに移植可能です。私見よりエレガントです。
case $str in
*['!&()'@#$%^*_+]* ) echo yup ;;
esac
グロブと照合します。シェルが特別と見なす文字をエスケープするだけです:
#!/bin/bash
str='some text with @ in it'
if [[ $str == *['!'@#\$%^\&*()_+]* ]]
then
echo "It contains one of those"
fi
これは Dash などに移植可能です。私見よりエレガントです。
case $str in
*['!&()'@#$%^*_+]* ) echo yup ;;
esac
グロブと照合します。シェルが特別と見なす文字をエスケープするだけです:
#!/bin/bash
str='some text with @ in it'
if [[ $str == *['!'@#\$%^\&*()_+]* ]]
then
echo "It contains one of those"
fi