
¿Puede dar un ejemplo de una secuencia de comandos en la que se le pide al usuario que ingrese el nombre, apellido y edad? ¿Y luego comprobar si el nombre y el apellido contienen solo letras y la edad solo contiene dígitos? Y si la información es correcta se añade al expediente.
Respuesta1
Respuesta2
Úselo echo
para mostrar un mensaje y read
para leer una línea de entrada. Estas son funciones integradas del shell, así que consulte el manual del shell para obtener más información.
echo "What is your name?"
read -r name
echo "What is your age?"
read -r age
Para validar la edad, verifique si contiene caracteres distintos a un dígito. La única construcción de shell incorporada portátil que permite esto es case
(algunos shells tienen extensiones para la coincidencia de expresiones regulares).
case $age in
*[!0-9]*) echo 1>&2 "Your age must consist of digits only."; exit 2;;
esac
Para validar el nombre, verifique si contiene caracteres no imprimibles. (Tenga en cuenta quelos nombres pueden contener caracteres bastante arbitrarios; Además, no todo el mundo tiene un “apellido”: trate un nombre como una cadena arbitraria).
case $name in
*[![:print:]]*) echo 1>&2 "Your name must consist of printable characters only."; exit 2;;
esac
Respuesta3
Si no es tarea, sugeriría considerar el uso de PERL o Python y simplemente hacer que PERL se lea así:
$name = <STDIN>;
chomp $name;
($forename, $surname) = split(<regex>, $name);
if($surname =~ /<regex>/) execute something
Python sería similar así que para continuar solo miraexpresión regular PERL. El guión no es exacto pero se entiende la idea.