Существует ли рычаг в Bash для обнаружения, когда cwd изменяется?

Я обычно использую zsh, который обеспечивает chpwd () рычаг. Это: Если cwd изменяется встроенным CD, zsh автоматически называет метод chpwd (), если он существует. Это позволяет настраивать переменные и псевдонимы, которые зависят от cwd.

Теперь я хочу портировать этот бит своего .zshrc для избиения, но нашел, что chpwd () не распознан ударом. Схожая функциональность является уже существующей в ударе? Я знаю что переопределение работ CD (см. ниже), все же я стремлюсь к более изящному решению.

function cd()
{
    builtin cd $@
    chpwd
}
16
задан Stefan Majewsky 18 July 2010 в 16:12
поделиться

1 ответ

Вам придется использовать DEBUG trap или PROMPT_COMMAND.

Примеры:

trap chpwd DEBUG        # calls the function before each command

PROMPT_COMMAND=chpwd    # calls the function after each command

Обратите внимание, что функция, определенная в PROMPT_COMMAND, выполняется перед каждым приглашением, даже пустым.

13
ответ дан 30 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

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