脚本来记住目录并始终 cd 到它而不是根目录

nix*_*get 3 bash cd-command shell-script

如何编写脚本以更改到给定目录,但还要记住它,以便在执行 cd 时它始终更改到该目录?

#!/bin/bash
setdir() {
    cd $1
    # remember the directory we are changing to here so whenever we do cd we go back to this set dir
}

setdir "$1"
Run Code Online (Sandbox Code Playgroud)

Chr*_*own 5

像下面这样的东西应该工作:

setdir() {
    cd "$1"
    export SETDIR_DEFAULT="$1"
}

my_cd() {
    cd "${1-${SETDIR_DEFAULT-$HOME}}"
}
Run Code Online (Sandbox Code Playgroud)

请注意,这些是函数,而不是单独的脚本。您不能从单独的脚本执行此操作,因为它无法影响调用它的父 shell。

如果您真的想覆盖cd(请不要这样做),请替换cdbuiltin cd.