Bash
我可以掛接到 cd 命令嗎?
我試圖在我執行的伺服器上設置一些東西,當我
cd
進入一個public_html
文件夾時,有 95% 的時間我總是會執行一些命令來檢查某些東西。無論如何我可以掛鉤,
cd
所以如果目錄是 apublic_html
,它會自動為我執行命令?如果我無法連接到
cd
命令,我還能做些什麼來達到我想要的結果嗎?我正在執行 CentOS 5.8。
您可以將此功能添加到您的
.bashrc
或其他啟動文件中(取決於您的 shell)。cd() { if [ "$1" = "public_html" ]; then echo "current dir is my dir" fi builtin cd "$1" }
使用
ksh
或bash
(或zsh
):cd() { builtin cd "$@" || return [ "$OLDPWD" = "$PWD" ] || case $PWD in (*/public_html) echo do something esac }
與
zsh
:chpwd() case $PWD in (*/public_html) echo do something esac
(
chpwd
是一個鉤子函式,只要目前工作目錄更改(通過cd
,pushd
,popd
…) 就會呼叫它)。