检查文本并将其保存到文件的脚本

检查文本并将其保存到文件的脚本

您能否举一个要求用户输入姓名和年龄的脚本示例。然后检查名字和姓氏是否只包含字母,年龄是否只包含数字?如果信息正确,则会将其添加到文件中。

答案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 正则表达式。脚本并不准确,但你明白了。

相关内容