>_ IzzyLab

Практическое задание

Валидируй ввод по шаблону

средне

Напиши /usr/local/bin/isnum: если переданный аргумент состоит только из цифр — выход 0, иначе выход 1. isnum 12345 → 0, isnum 12a45 → 1.

Что потренируешь:
  • case и glob-шаблоны
  • валидация ввода
  • код выхода
  • отрицание в [ ]
  • позиционные аргументы

Разбор темы

Проверка строки на соответствие шаблону в bash удобно делается оператором case, который сопоставляет значение с glob-масками (это не regex — свой синтаксис). Внутри классов [...] символ ! в начале означает отрицание, а * по краям — «что угодно вокруг», так что маску можно построить так, чтобы она ловила присутствие «неподходящего» символа. Часто надёжнее отлавливать именно негативные случаи (включая пустой аргумент) отдельными ветками, а «хорошее» оставлять ветке по умолчанию; ответ отдаётся кодом выхода.

Что проверяется

  1. isnum исполняемый
  2. isnum 12345 возвращает 0
  3. isnum 12a45 возвращает 1

Как это выглядит