У меня есть скрипт shell, который по умолчанию отправляет электронное письмо после завершения. Я хотел бы изменить его, чтобы он отвечал на аргумент nomail
из командной строки. Так, например, при запуске скрипта обычно получается электронное письмо:
michaelmichael: ~/bin/myscript
Но если запустить с переключателем nomail
, он не отправит электронное письмо с подтверждением:
michaelmichael: ~/bin/myscript nomail
Если я запускаю скрипт с аргументом nomail
, он работает нормально. Без nomail
, $argv
не определено и выдает ошибку. Я изучил документацию по рыбным раковинам, но не могу найти ничего, что сработает. Вот что у меня пока
switch $argv
case nomail
## Perform normal script functions
case ???
## Perform normal script functions
mailx -s "Script Done!"
end
Выполнение этой команды приводит к следующей ошибке:
switch: Expected exactly one argument, got 0
Очевидно, что он ожидает аргумент, я просто не знаю синтаксис, чтобы сказать ему, что он не должен принимать аргументы, или один, если он существует.
Полагаю, это довольно просто, но я не очень хорошо разбираюсь в сценариях оболочки.