您能否举一个要求用户输入姓名和年龄的脚本示例。然后检查名字和姓氏是否只包含字母,年龄是否只包含数字?如果信息正确,则会将其添加到文件中。
答案1
答案2
用于echo
显示消息,用于read
读取一行输入。这些是 shell 内置命令,因此请参阅 shell 手册以获取更多信息。
echo "What is your name?"
read -r name
echo "What is your age?"
read -r age
要验证年龄,请检查它是否包含数字以外的字符。唯一允许这样做的可移植内置 shell 构造是case
(某些 shell 具有用于正则表达式匹配的扩展)。
case $age in
*[!0-9]*) echo 1>&2 "Your age must consist of digits only."; exit 2;;
esac
要验证名称,请检查它是否包含不可打印的字符。 (注意名称可以包含几乎任意字符;另外,并不是每个人都有“姓氏”:将名字视为任意字符串。)
case $name in
*[![:print:]]*) echo 1>&2 "Your name must consist of printable characters only."; exit 2;;
esac
答案3
如果这不是家庭作业,我建议研究使用 PERL 或 Python,并且只需将 PERL 读成这样:
$name = <STDIN>;
chomp $name;
($forename, $surname) = split(<regex>, $name);
if($surname =~ /<regex>/) execute something
Python 是类似的,所以继续看一下PERL 正则表达式。脚本并不准确,但你明白了。