
Você pode dar um exemplo de um script em que o usuário é solicitado a inserir nome, sobrenome e idade. E depois verificar se o nome e o sobrenome contêm apenas letras e a idade contém apenas dígitos? E se a informação estiver correta ela será adicionada ao arquivo.
Responder1
Responder2
Use echo
para exibir uma mensagem e read
para ler uma linha de entrada. Estes são componentes internos do shell, portanto consulte o manual do seu shell para obter mais informações.
echo "What is your name?"
read -r name
echo "What is your age?"
read -r age
Para validar a idade, verifique se ela contém outros caracteres além de um dígito. A única construção de shell portátil integrada que permite isso é case
(alguns shells possuem extensões para correspondência de regexp).
case $age in
*[!0-9]*) echo 1>&2 "Your age must consist of digits only."; exit 2;;
esac
Para validar o nome, verifique se contém caracteres não imprimíveis. (Observe quenomes podem conter caracteres praticamente arbitrários; além disso, nem todo mundo tem um “sobrenome”: trate um nome como uma sequência arbitrária.)
case $name in
*[![:print:]]*) echo 1>&2 "Your name must consist of printable characters only."; exit 2;;
esac
Responder3
Se não for lição de casa, sugiro usar PERL ou Python e simplesmente fazer com que o PERL seja lido assim:
$name = <STDIN>;
chomp $name;
($forename, $surname) = split(<regex>, $name);
if($surname =~ /<regex>/) execute something
Python seria semelhante, então para continuar basta olharRegex PERL. O script não é exato, mas essa é a ideia.