繁体   English   中英

无法抑制shell脚本中的输出

[英]Not able to suppress the output in shell script

我正在使用以下代码执行操作。 但是每次在控制台上打印“ ldap_bind:无效的凭据(49)”。 我不希望将其打印在控制台上,而应该取消它。 如何实现呢? 码:

LDAP_CONF="/etc/opt/nokia/ldapserver.conf"
bindError="ldap_bind: Invalid credentials (49)"
basedn=`cat $LDAP_CONF | grep basedn | cut -d " " -f2`
verify=`su - omc -c "ldapsearch -x -n -D 

"uid=$userName,ou=people,ou=accounts,$basedn" -w $newPswd"`

if echo "$verify" | grep -q "$bindError"; then
    printPasswdLog "${ERR}" "bind to ldap server failed"
else
    printPasswdLog "${INF}" "bind to ldap server Successful for $userName "
fi

我得到以下输出:

ldap_bind:无效的凭据(49)2015年6月3日星期三12:45:56 EEST | 信息| 绑定到ldap服务器对nwi3system成功

如果您确实想抑制所有错误消息,只需将其放在脚本的开头:

exec 2> /dev/null

但是您真的不想这样做。 可能就足够了:

verify=$(su - omc -c "ldapsearch -x -n -D 

uid=$userName,ou=people,ou=accounts,$basedn -w $newPswd" 2> /dev/null)

但您也不想这样做。 您为什么要扔掉一条完美的错误消息,以包含较少信息的错误消息代替?

您可以将错误重定向到其他文件或/dev/null 你可以用这种方式

./SCRIPT 2> /dev/null

这会将错误重定向到/ dev / null,并且没有记录是错误的。

相反,最好将其记录在某个位置。 尝试这个

./SCRIPT 2>> error.txt

这将创建一个文件,所有错误都将记录在那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM