【求助】关于2> /dev/null

【求助】关于2> /dev/null

hostname=`nslookup -sil "$hostip" 2> /dev/null | grep -i "name " | awk '{print $4}'`
echo $hostname >> txtfile

这样做可以让nslookup找不到主机时,输出为空. 具体原理没有看懂,哪位能够指点一下,非常感谢!!!      
复制内容到剪贴板
代码:
[No.483 08:41:38 ~ ]# nslookup -sil 10.3.51.41
Server:                10.3.51.41
Address:        10.3.51.41#53

41.51.3.10.in-addr.arpa        name = huan.linux.net.

[No.484 08:42:29 ~ ]# nslookup -sil 10.3.51.41 | grep name
41.51.3.10.in-addr.arpa        name = huan.linux.net.
[No.485 08:43:41 ~ ]# nslookup -sil 10.3.51.41 | grep name | awk '{print $4}'
huan.linux.net.
经过不完全测试
发现并不需要
2>/dev/null的意思是把标错误扔到位桶里
也就是你将看不见错误提示

给个例子
复制内容到剪贴板
代码:
[No.491 08:49:24 ~ ]# for ip in {1..254}
> do
> fping 10.3.51.$ip | grep alive
> done
10.3.51.1 is alive
10.3.51.2 is alive
10.3.51.3 is alive
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.4
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.4
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.4
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.5
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.5
ICMP Host Unreachable from 10.3.51.41 for ICMP Echo sent to 10.3.51.5
...............................
[No.492 08:50:47 ~ ]# for ip in {1..254}; do fping 10.3.51.$ip 2>/dev/null | grep alive; don  e
10.3.51.1 is alive
10.3.51.2 is alive
10.3.51.3 is alive
10.3.51.10 is alive
10.3.51.15 is alive
.................................
感谢dearvoid帮助我明白这点        
不好意思,还是没有明白,怎么做才能让nslookup找不到主机的时候,输出为空格? 这样的话,如果在一个文件里面同时输出一列ip和相应的hostname,不会因为某一个ip找不到主机,后面的顶上来,导致在同一行中,ip对应的主机不正确.      
当找不到主机时
使hostname=‘          ’?
复制内容到剪贴板
代码:
hostname=`nslookup -sil "$hostip" 2> /dev/null | grep -i "name " | awk '{print $4}'`
echo ${hostname:-' '}