テキストをチェックしてファイルに保存するスクリプト

テキストをチェックしてファイルに保存するスクリプト

ユーザーに名前、姓、年齢を入力するように求めるスクリプトの例を挙げていただけますか。次に、名前と姓に文字のみが含まれ、年齢に数字のみが含まれているかどうかを確認します。情報が正しい場合は、ファイルに追加されます。

答え1

これは宿題のようですので、誰もあなたに代わって脚本を書くべきではありません。

代わりに、次の 2 つのコマンドの使い方を学ぶことをお勧めします。

答え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正規表現スクリプトは正確ではありませんが、概要はわかります。

関連情報