如何隐藏在终端中写入和输出的所有输出?
换句话说,我希望添加字符串
>/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 年首次创建此答案时,
zsh
5.2 和bash
4.4 就是这种情况。虽然 5.1.8 似乎仍然如此bash
,但至少从 5.8 版开始,这种情况似乎zsh
不再存在)要再次启用输出,请运行
exec >/dev/tty exec 2>/dev/tty