bash на событие команды (или оболочки)

Единственная вещь, которая работала, была к:

$ setup

и активируйте все сервисы на брандмауэр снова.

2
23.07.2015, 20:41
1 ответ

Для этого можно использовать ловушку DEBUG . В этой ловушке $ BASH_COMMAND содержит последнюю выполненную команду.

trap 'echo "you tried to call the command [$BASH_COMMAND]"' DEBUG

Обратите внимание, что если вы выполняете команды как часть приглашения или $ PROMPT_COMMAND , ловушка будет запускаться и для них. Вы можете добавить проверки, чтобы увидеть, совпадает ли $ BASH_COMMAND с $ PROMPT_COMMAND , чтобы избежать некоторых из них.

Что касается выполнения, когда команда не существует, в bash, если существует функция с именем command_not_found_handle , эта функция выполняется каждый раз, когда команда не найдена. Он выполняется со всеми аргументами из командной строки, которые вы пытались выполнить, переданными в качестве аргументов, поэтому вы можете сделать что-то вроде этого:

command_not_found_handle() {
    echo "you tried to call the command [$@]"
}

Это приводит к:

$ foo bar
you tried to call the command [foo bar]
$
6
27.01.2020, 21:54

Теги

Похожие вопросы