and*_*ncx 491
以下命令将标准输出发送到空设备(位桶).
scriptname >/dev/null
Run Code Online (Sandbox Code Playgroud)
如果你还想在那里发送错误消息,请使用其中一个(第一个可能不适用于所有shell):
scriptname &>/dev/null
scriptname >/dev/null 2>&1
scriptname >/dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
并且,如果要记录消息但不能看到它们,请替换/dev/null
为实际文件,例如:
scriptname &>scriptname.out
Run Code Online (Sandbox Code Playgroud)
为了完整性,在Windows cmd.exe(其中"nul"相当于"/ dev/null")下,它是:
scriptname >nul 2>nul
Run Code Online (Sandbox Code Playgroud)
Die*_*lla 44
就像是
script > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
这将阻止标准输出和错误输出,将它们重定向到/dev/null
.
小智 12
尝试
: $(yourcommand)
Run Code Online (Sandbox Code Playgroud)
:
是"什么都不做"的缩写.
$()
只是你的命令.
在某些情况下可能适合的替代方法是将命令的结果分配给变量:
$ DUMMY=$( grep root /etc/passwd 2>&1 )
$ echo $?
0
$ DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
由于Bash和其他POSIX命令行解释器不将变量赋值视为命令,因此遵循当前命令的返回码.
注意:使用typeset
or declare
关键字的分配被认为是一个命令,因此评估的返回代码是自己的分配,而不是在子shell中执行的命令:
$ declare DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
像andynormancx一样使用这个:(如果你在Unix环境下工作)
scriptname > /dev/null
Run Code Online (Sandbox Code Playgroud)
或者你可以使用它:(如果你在Windows环境中工作)
scriptname > nul
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
314928 次 |
最近记录: |