你可能注意到上面执行脚本的时候出现 ”df :/dev/sdwqa 没有那个文件或者目录“ 等错误信息,我们在上面虽然把执行结果重定向到一个空设备文件中,这时就需要在把标准错误信息也重定向到空设备文件中,使用命令 2>&1 完整语句:
if df -g >/dev/null 2>&1 ;then
echo "right"
else
echo "error"
fi
因为df不支持-g参数,所以这时再执行该命令,不会再显示错误的信息,其执行结果为:error
命令解释:
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
命令解释部分来自网络:http://dongwei.iteye.com/blog/322702