为什么.sh文件中的“cd -”会打印地址

wor*_*tor 4 linux bash shell

我使用“cd -”在文件夹之间切换。喜欢:

cd /etc/                                                                                                                          
cd -   
Run Code Online (Sandbox Code Playgroud)

但是为什么“cd -”会打印地址(如密码)?我怎样才能阻止它打印地址?

小智 13

SUS4 说

当 - 用作操作数时,这应等效于以下命令:

    cd "$OLDPWD" && pwd
Run Code Online (Sandbox Code Playgroud)

它更改为以前的工作目录,然后写入其名称。

因此,如果您不想打印一半的行为,只需自己做第一件事:

cd "$OLDPWD"
Run Code Online (Sandbox Code Playgroud)

或波浪号扩展等效

cd ~-
Run Code Online (Sandbox Code Playgroud)

通常如果你需要这个,pushd/popd是一个更好的选择,尽管不太便携。