use*_*456 4 command-line bash zsh
如何隐藏在终端中写入和输出的所有输出?
换句话说,我正在寻找添加字符串
>/dev/null 2&>1
Run Code Online (Sandbox Code Playgroud)
我写的每一个命令。
zsh:您可以/dev/null通过运行这两个命令将以下任何命令的 stdout 和 stderr 重定向到:
exec >/dev/null
exec 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
注意:这仍然会显示提示和您在命令行上键入的任何内容,但不会显示其他内容。
bash:您可以使用以下命令重定向 stdout 和 stderr
exec >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
笔记
这可能会抑制任何输出,包括提示和您在命令行中键入的内容。(当我在 2016 年首次创建此答案时,zsh5.2 和bash4.4就是这种情况。虽然bash5.1.8似乎仍然如此,但zsh至少从 5.8 版开始,情况似乎不再如此)
要再次启用输出,请运行
exec >/dev/tty
exec 2>/dev/tty
Run Code Online (Sandbox Code Playgroud)