case $v in
*"$a"*) printf '<%s> is in <%s>\n' "$a" "$v"
esac
Meus problemas é que eu quero ler um caractere do stdin e compará-lo com um valor de string. Se esse caractere existir, quero exibir uma mensagem. Por exemplo, salvando %
na variável $a
:
$ read a
%
$echo $a
%
Existe uma variável definida como diz v='~'!@#$%^&*()_-+=:;{[}]|\/<>,."'
todos os possíveis caracteres especiais, incluindo um único tick '
Eu preciso verificar se a entrada de caracteres existe no valor da string. Como posso fazer isso?
case $v in
*"$a"*) printf '<%s> is in <%s>\n' "$a" "$v"
esac
Aqui você vai:
#!/bin/bash
v='~'!@#$%^&*()_-+=:;{[}]|/<>,."'
echo type any character and press enter
IFS= read -r a
[[ $v =~ "$a" ]] && echo match || echo not
Tente isso
cat | egrep -e '[~'!@#$%^&*()_-+=:;{[}]|/<>,."]'