Как использовать сценарий оболочки для остановки CLI, если совпадает один аргумент - PullRequest
1 голос
/ 20 февраля 2020

По сути, я пытаюсь отключить функцию CLI «удалить», чтобы предотвратить непреднамеренное удаление нашей средой себя (и других). Я хочу в основном перехватить amplify delete (включая последующие аргументы) и повторить что-то вроде you are not supposed to do this.

 amplify() {
   local -a args=( )
   for arg; do
     # if arg == delete
     echo "This command is disabled."
   done
 }

Подвох в том, что я все еще хочу, чтобы остальные аргументы CLI работали. Так что, если я наберу amplify status, это должно работать. Только не amplify delete или amplify delete --arg2 --arg3 --etc

1 Ответ

2 голосов
/ 20 февраля 2020

Вы можете написать оболочку для функции amplify(), как у вас, и проверить, установлен ли аргумент на delete

amplify() {
   [ "$1" = "delete" ] && { >&2 printf '%s\n' "This command is disabled."; return; }
   command amplify "$@"
}

. command перед amplify гарантирует это время, бинарный файл ищется в переменной PATH для выполнения.

...