我有一个Bash脚本,运行带有参数的程序。该程序输出一些状态(做这个,做那个…)这个程序没有任何安静的选项。如何防止脚本显示任何内容?
我正在寻找类似Windows的“回音关闭”。
我有一个Bash脚本,运行带有参数的程序。该程序输出一些状态(做这个,做那个…)这个程序没有任何安静的选项。如何防止脚本显示任何内容?
我正在寻找类似Windows的“回音关闭”。
当前回答
类似的
script > /dev/null 2>&1
这将防止标准输出和错误输出,将它们重定向到/dev/null.
其他回答
Try
: $(yourcommand)
:是do nothing的缩写。
$()只是您的命令。
这是另一种选择
scriptname |& :
在你的脚本中,你可以将以下内容添加到你知道要输出的行中:
some_code 2>>/dev/null
或者你也可以试试
some_code >>/dev/null
在某些情况下,另一种适合的方法是将命令的结果赋值给变量:
$ DUMMY=$( grep root /etc/passwd 2>&1 )
$ echo $?
0
$ DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
1
由于Bash和其他POSIX命令行解释器不将变量赋值视为命令,因此当前命令的返回代码是受尊重的。
注意:带有typeset或declare关键字的赋值被认为是一个命令,因此case的计算返回代码是赋值本身,而不是在子shell中执行的命令:
$ declare DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
0
就像andynormancx的帖子一样,使用这个(如果你在Unix环境中工作):
scriptname > /dev/null
或者你可以使用这个(如果你在Windows环境中工作):
scriptname > nul