2

Я часто переключаюсь между несколькими каталогами в сеансе bash. Иногда до 4. Для каждого каталога, в котором я нахожусь, у меня часто есть эксклюзивный набор команд, который я запускаю, и этот набор может содержать от 7 до 10 команд. Мне было интересно, возможно ли создать связь между моей историей команд bash и cwd, в которой эти команды были запущены. Ценю любые предложения.

2 ответа2

1

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

PROMPT_COMMAND='if [[ $PWD =~ /usr/share ]]; then echo take action in /usr/share; fi'
1

Используйте следующее переопределение для cd и поместите эти строки в .bashrc:

            HISTFILE=$HOME/.bash_history.`echo $PWD|sed -e 's/\//_/g'`
            cd () {
                history -a
                command cd "$@"
                HISTFILE=$HOME/.bash_history.`echo $PWD|sed -e 's/\//_/g'`
                history -c
                history -r
            }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .