Выполнять сценарий bash каждый раз, когда выполняются командные строки

9

Я новый пользователь Ubuntu / Linux, я хотел бы задать вопрос как мой заголовок выше.

Например, у меня есть файл bash ./script , я бы хотел, чтобы он запускался автоматически при вводе любой командной строки. После выполнения командной строки pwd будет выполнен ./script . После ввода следующей командной строки ls -la , ./script будет снова запущено.

    
задан Ender Phan 03.10.2016 в 11:11
источник

2 ответа

13

Вам нужно установить PROMPT_COMMAND . От man bash :

PROMPT_COMMAND
              If set, the value is executed as a command prior to
              issuing each primary prompt.

Например, это будет записывать текущую дату в /tmp/PC каждый раз, когда выполняется команда:

 $ PROMPT_COMMAND="date > /tmp/PC"
    
ответ дан Arkadiusz Drabczyk 03.10.2016 в 11:18
источник
11

Вы ищете переменную окружения PROMPT_COMMAND , значение этой переменной будет выполняться как команда после выполнения каждой команды, указанной в терминале, перед тем, как показывать следующую подсказку.

Например, установите его как:

export PROMPT_COMMAND='/path/to/script'

Сделайте скрипт, /path/to/script , выполним сначала.

Теперь скрипт будет запущен после каждой команды.

Просто отметим, что если вы не хотите, чтобы переменная экспортировалась, то сделайте вместо нее переменную оболочки, а затем снимите export :

PROMPT_COMMAND='/path/to/script'

От man bash :

PROMPT_COMMAND 
If set, the value is executed as a command prior to issuing each primary prompt.
    
ответ дан heemayl 03.10.2016 в 11:15