Я новый пользователь Ubuntu / Linux, я хотел бы задать вопрос, как мой заголовок выше.
Например, у меня есть файл bash ./script
, я хотел бы, чтобы он запускался автоматически при вводе любой командной строки. Как только я выполню командную строку, pwd
то ./script
будет выполнена. Как только я наберу следующую командную строку, ls -la
то ./script
снова будет выполнен.
command-line
bash
scripts
execute-command
Эндер Фан
источник
источник
Ответы:
Вам нужно установить
PROMPT_COMMAND
переменную. Отman bash
:Например, это будет записывать текущую дату при
/tmp/PC
каждом выполнении команды:источник
echo $(date)
будет запущена во время объявления, поэтому всегда будет показывать (сохранять) одно и то же время.Вы ищете
PROMPT_COMMAND
переменную окружения, значение этой переменной будет выполнено как команда, после выполнения каждой команды, заданной в терминале, непосредственно перед отображением следующего приглашения.Например, установите его как:
Сделайте скрипт
/path/to/script
, исполняемый первым.Теперь скрипт будет запускаться после каждой команды.
Просто отметим, что если вы не хотите, чтобы переменная экспортировалась, т.е. делала ее переменной оболочки, а не переменной окружения, отбросьте
export
:От
man bash
:источник
export
?export
сделает переменную переменнойPROMPT_COMMAND
среды, т. Е. Переменная будет доступна для всех дочерних процессов (например, подоболочек) текущей оболочки. Если вы просто хотите ограничить его только текущим сеансом оболочки (переменная оболочки), удалитеexport
.export
не является хорошей практикой здесь -PROMPT_COMMAND
должен быть установлен только в интерактивном файле запуска оболочки и не должны быть видны в среде