Скрипт, который проверяет и сохраняет текст в файл

Скрипт, который проверяет и сохраняет текст в файл

Можете ли вы привести пример скрипта, в котором пользователю предлагается ввести имя, фамилию и возраст. А затем проверить, содержат ли имя и фамилия только буквы, а возраст только цифры? И если информация верна, она добавляется в файл.

решение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. Сценарий не совсем точен, но вы поняли идею.

Связанный контент