如何使用 zsh 和 bash 隐藏所有命令输出

如何使用 zsh 和 bash 隐藏所有命令输出

如何隐藏在终端中写入和输出的所有输出?

换句话说,我希望添加字符串

>/dev/null 2&>1

我写的每一个命令。

  • 如何使用 bash 来做这件事?
  • 您将如何使用 zsh 来做到这一点?
  • 理想情况下如何进行考虑到任何终端的配置。

答案1

zsh

/dev/null您可以通过运行这两个命令将以下任何命令的 stdout 和 stderr 重定向到:

exec >/dev/null
exec 2>/dev/null

笔记:这仍将显示提示和您在命令行上输入的任何内容,但不会显示其他内容。

bash

您可以使用以下命令重定向 stdout 和 stderr

exec >/dev/null 2>&1

笔记

  • 这可能会抑制任何输出,包括提示符和您在命令行中键入的内容。(当我在 2016 年首次创建此答案时, zsh5.2 和bash4.4 就是这种情况。虽然 5.1.8 似乎仍然如此bash,但至少从 5.8 版开始,这种情况似乎zsh不再存在)

  • 要再次启用输出,请运行

      exec >/dev/tty
      exec 2>/dev/tty
    

相关内容