Bash обработчик событий для текущей смены рабочего директора - PullRequest
0 голосов
/ 06 февраля 2020

Есть ли в Bash простой способ обнаружить изменение текущего рабочего каталога? Я хочу изменить заголовок окна каждый раз, когда я перемещаюсь с помощью команды cd. Я хочу, чтобы имя каталога репозитория было заголовком окна. Если CWD не является репозиторием, заголовок может быть пустым.

Например:

cd Documents/Repositories    # after this line I want window title to be empty ''  
cd repository1               # after this line I want window title to be 'repository1'   
cd ..                        # after this line I want window title to be empty ''   
cd repository2               # after this line I want window title to be 'repository2'  

Есть ли способ определить, когда CWD изменился (что-то вроде обработчика событий)?

1 Ответ

1 голос
/ 06 февраля 2020

Что вы могли бы сделать, это переписать функцию cd в ~/.profile и добавить к ней больше синтаксического анализа:

PROMPT_COMMAND='echo -ne "\033]0;${MYDIR}\007"'
function cd {
    MYDIR="${1:-${HOME}}"
    builtin cd "${MYDIR}"
    # ADD PARSING HERE
}

Но я бы посоветовал не делать этого, так как вы, вероятно, хотите иметь каталог как название независимо от того, переходите ли вы к .. или нет. Предлагаю отобразить последние 30 символов вашего текущего каталога:

PROMPT_COMMAND='echo -ne "\033]0;..${PWD: -30}\007"'

Вы можете прочитать о различных оболочках здесь .

...