簡體   English   中英

當前工作目錄更改的 Bash 事件處理程序

[英]Bash event handler for current working directory change

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 何時發生變化(有點像事件處理程序)?

您可以做的是覆蓋~/.profile的 cd 函數並為其添加更多解析:

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"'

您可以在此處閱讀有關不同 shell 的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM