檢查文字並將其儲存到文件的腳本

檢查文字並將其儲存到文件的腳本

您能否舉一個要求使用者輸入姓名和年齡的腳本範例。然後檢查名字和姓氏是否只包含字母,年齡是否只包含數字?如果資訊正確,則會將其新增至文件。

答案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 正規表示式。腳本並不準確,但你明白了。

相關內容