テキストを確認してファイルに保存するスクリプト

テキストを確認してファイルに保存するスクリプト

ユーザーに名前と年齢を入力する必要があるスクリプトの例を教えてください。次に、姓と名前に文字のみが含まれていること、年齢に数字のみが含まれていることを確認してください。情報が正しい場合は、ファイルに追加されます。

答え1

これは宿題のように聞こえます。したがって、誰もあなたのためにスクリプトを書いてはいけません。

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

答え2

メッセージを表示しechoread入力行を読み取るために使用されます。これはシェルに組み込まれているため、詳細についてはシェルのマニュアルを参照してください。

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正規表現。スクリプトは正確ではありませんが、アイデアを得ることができます。

関連情報