Bash

我可以掛接到 cd 命令嗎?

  • July 20, 2019

我試圖在我執行的伺服器上設置一些東西,當我cd進入一個public_html文件夾時,有 95% 的時間我總是會執行一些命令來檢查某些東西。

無論如何我可以掛鉤,cd所以如果目錄是 a public_html,它會自動為我執行命令?

如果我無法連接到cd命令,我還能做些什麼來達到我想要的結果嗎?

我正在執行 CentOS 5.8。

您可以將此功能添加到您的.bashrc或其他啟動文件中(取決於您的 shell)。

cd() {      
  if [ "$1" = "public_html" ]; then
     echo "current dir is my dir"
  fi
  builtin cd "$1"
}

使用kshbash(或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…) 就會呼叫它)。

引用自:https://unix.stackexchange.com/questions/170279