【发布时间】:2019-07-03 20:23:24
【问题描述】:
在我的 bash 脚本中做一些适当的“pushd/popd 清理”时遇到了一些麻烦。那就是:如果我做了几次pushd,我想确保在exit之前做同样数量的popd。
但是,我注意到 pushd/popd 堆栈似乎不是全局的。
假设我的 homedir 中有这个名为 example-pushd-twice.sh 的脚本:
pushd /etc
pushd /tmp
我从我的 homedir 中的 shell 执行此操作:(结果输出为块引用)
dirs
~
./example-pushd-twice.sh
/等~
/tmp /等~
我现在预计仍然在 /tmp 中并且仍然有一个包含 3 个目录的目录堆栈,但是:
dirs
~
这是正确的行为吗?我可以信任一个 shell 脚本来调用它自己的 pushd/popd 堆栈,这样我就不必关心之后的清理工作了吗?
【问题讨论】:
标签: bash shell scripting stack pushd