ユーザーに名前と年齢を入力する必要があるスクリプトの例を教えてください。次に、姓と名前に文字のみが含まれていること、年齢に数字のみが含まれていることを確認してください。情報が正しい場合は、ファイルに追加されます。
答え1
答え2
メッセージを表示しecho
、read
入力行を読み取るために使用されます。これはシェルに組み込まれているため、詳細についてはシェルのマニュアルを参照してください。
echo "What is your name?"
read -r name
echo "What is your age?"
read -r age
年齢を確認するには、数字以外の文字が含まれていることを確認してください。これを可能にする唯一のポータブル組み込みシェル構成は次のとおりですcase
(一部のシェルには正規表現マッチングのための拡張機能があります)。
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正規表現。スクリプトは正確ではありませんが、アイデアを得ることができます。