试图找到一种方法在切换到目录后在 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

最佳答案

不要忘记 pushdpopd ,除非你从不使用它们。我会这样做:

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/

10-09 01:51