不要在几个bash脚本中显示pushd/popd堆栈(quiet pushd/popd)

bem*_*mug 81 bash built-in output

每次我使用pushd或popd时,它都会将堆栈打印到标准输出.怎么不这样做?

我不想pushd > /dev/null每次都这样做,因为我有很多脚本互相调用.

也许一个好的覆盖会做到这一点,但我只需要在我的脚本中覆盖这些内置,然后恢复正确的行为.

che*_*ner 116

你可以添加

pushd () {
    command pushd "$@" > /dev/null
}

popd () {
    command popd "$@" > /dev/null
}
Run Code Online (Sandbox Code Playgroud)

到每个脚本的顶部.这可能是解决问题所需的最少工作量.

  • 消除错误时要小心:您可能会在以后造成难以诊断的故障。确保检查不正常的返回代码并做出相应的响应。 (5认同)

Mic*_*uff 14

在 zsh 中你可以setopt PUSHDSILENT。把这个放在你的~/.zshrc.

  • popd 没有 `-q` 选项 (6认同)
  • 这是一个很好的评论,或者是一个答案的切线,但它不属于不询问“zsh”的问题的独立答案。 (5认同)
  • 或者使用“popd -q”(安静)。 (4认同)
  • @MarekN:“popd -q”的先前评论指的是 zsh,而不是 bash,尽管原始问题被标记为想要 bash 答案,而不是 zsh。 (4认同)