num=$1
exec 3>&1 #将标准输入定向到FD3 ,这样就不会子在屏幕打印
exec 1>execlog.txt #将标准输入定向到文件日志execlog.txt
if [ "$num" -eq 0 ];then
echo "num 1 is 0" # 该信息在屏幕将不会显示
fi
exec 1>&3 #将定向到Fd3的输入,重新恢复给标准输入
if [ "$num" -eq 0 ];then
echo "num 1 is 0 again"
exec 3>&1 #将标准输入定向到FD3 ,这样就不会子在屏幕打印
exec 1>execlog.txt #将标准输入定向到文件日志execlog.txt
if [ "$num" -eq 0 ];then
echo "num 1 is 0" # 该信息在屏幕将不会显示
fi
exec 1>&3 #将定向到Fd3的输入,重新恢复给标准输入
if [ "$num" -eq 0 ];then
echo "num 1 is 0 again"
fi
测试 test.sh 0 即可以看到结果
具体原理 可查看 http://blog.youkuaiyun.com/21aspnet/article/details/7487770