Corresponde a um único caractere em um script bash de string

2

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?

    
por Nirmal Arri 16.01.2014 / 23:16

3 respostas

2

case $v in
  *"$a"*) printf '<%s> is in <%s>\n' "$a" "$v"
esac
    
por 16.01.2014 / 23:26
1

Aqui você vai:

#!/bin/bash
v='~'!@#$%^&*()_-+=:;{[}]|/<>,."'
echo type any character and press enter
IFS= read -r a
[[ $v =~ "$a" ]] && echo match || echo not
    
por 16.01.2014 / 23:24
-1

Tente isso

cat | egrep -e '[~'!@#$%^&*()_-+=:;{[}]|/<>,."]'
    
por 16.01.2014 / 23:24

Tags