试图找到一种方法在切换到目录后在 BASH 中执行函数。
例如,
# cd code/project/blah
"Your latest modified files are main.cc blah.hpp blah.cc"
(~/code/project/blah) # _
有了上述内容,我希望能够围绕 bash 命令包装其他功能。
希望能找到类似 zsh 钩子(Hook)函数的东西
http://zsh.sourceforge.net/Doc/Release/Functions.html#SEC45
最佳答案
不要忘记 pushd
和 popd
,除非你从不使用它们。我会这样做:
PS1='(\w) \$ '
chdir() {
local action="$1"; shift
case "$action" in
# popd needs special care not to pass empty string instead of no args
popd) [[ $# -eq 0 ]] && builtin popd || builtin popd "$*" ;;
cd|pushd) builtin $action "$*" ;;
*) return ;;
esac
# now do stuff in the new pwd
echo Your last 3 modified files:
ls -t | head -n 3
}
alias cd='chdir cd'
alias pushd='chdir pushd'
alias popd='chdir popd'
关于bash 在更改目录 (cd) 后执行 shell 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3443673/