![丢弃标准输出和错误](https://linux22.com/image/65798/%E4%B8%A2%E5%BC%83%E6%A0%87%E5%87%86%E8%BE%93%E5%87%BA%E5%92%8C%E9%94%99%E8%AF%AF.png)
我已经使用重定向我的输出/dev/空在 bash 脚本中,但它仍然抛出错误。代码如下
ps -p $proc | fgrep $proc> /dev/null
if [ $? -ne '0' ] ; then
......
fi
下面是错误
error: list of process IDs must follow -p
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
Usage: fgrep [OPTION]... PATTERN [FILE]...
Try 'fgrep --help' for more information.
我怎样才能抑制这个错误而不影响$?输出?
答案1
&> /dev/null
扔掉stderr
和stdout
。与其他人的答案相同,只是短了几个字符。
答案2
您可以使用命令分组:
{ ps -p "$proc" | fgrep "$proc";} >/dev/null 2>&1
或将管道包裹在子壳中:
(ps -p "$proc" | fgrep "$proc") >/dev/null 2>&1
答案3
将错误流重定向到null
likeps -p $proc 2> /dev/null | fgrep $proc > /dev/null 2>&1