>_ IzzyLab

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

Скрипт-роутер команд

средне

Напиши /usr/local/bin/svc, который по первому аргументу печатает: startstarting, stopstopping, statusrunning. На любой другой аргумент — выход с кодом 2.

Что потренируешь:
  • case
  • bash-скрипты
  • аргументы $1
  • коды возврата
  • ветвление

Разбор темы

Когда поведение скрипта зависит от значения одной переменной (здесь — первого аргумента $1), вместо лестницы if/elif чище использовать конструкцию case: она сравнивает значение с набором образцов и выполняет ветку первого совпавшего. Каждая ветка имеет вид образец) команды ;;, а образец * в конце ловит всё остальное как default — удобное место, чтобы вернуть ненулевой код на неизвестную подкоманду. Блок открывается словом case и закрывается esac.

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

  1. svc start печатает starting
  2. svc status печатает running
  3. неизвестная команда даёт код 2

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