为什么 `pushd` 总是将堆栈输出到 stdout?

为什么 `pushd` 总是将堆栈输出到 stdout?

pushd将目录推入目录堆栈,并更改工作目录。我想这就是我们所需要的。

但除此之外,为什么pushd总是将堆栈输出到stdout?我认为这是不必要的,会给屏幕带来混乱,或者我错过了它的意义。谢谢。

答案1

仅当命令成功时,它并不总是这样做。从联机帮助页:

如果 Pushd 命令成功,还会执行 dirs。

我们无法读懂原始程序员的想法,但我们可以想象这是为了确保通知用户堆栈的更新内容。

答案2

pushd主要popd提供一种便捷的方式来交互式地导航目录。在脚本中,cd更常用。

作为一种交互式工具,pushd每当新目录成功推送到目录堆栈上时,都会向用户提供有关目录堆栈当前状态的反馈。该cd命令有时包含在 shell 函数中(仅用于交互使用),每当当前工作目录更改时,该函数都会以相同的方式输出新目录。 shellr中的别名会ksh重复最近给出的命令,也会以回显正在执行的实际命令的形式向用户提供反馈。

所有这些小反馈都是为了帮助用户导航,并且通常确保他们在使用交互式 shell 提示符时正在做他们认为正在做的事情。

相关内容