
ユーザーに名前、姓、年齢を入力するように求めるスクリプトの例を挙げていただけますか。次に、名前と姓に文字のみが含まれ、年齢に数字のみが含まれているかどうかを確認します。情報が正しい場合は、ファイルに追加されます。
答え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正規表現スクリプトは正確ではありませんが、概要はわかります。