[英]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.