while ping -c 1 $IPADDR &> /dev/null
&> /dev/null
是什么意思?
将标准输出重定向到 /dev/null呗,即完全忽略标准输出的内容。
将输出结果重定向到空
将标准输入输出重定向到“黑洞”,即不输出,可以参考这个很具体Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1
不要这内容比较优雅(maybe?)的写法
不在屏幕上显示左边语句缠身的标准输出或者错误
这个&>就代表把标准输出和标准错误重定向到/dev/null。详细的可man bash,然后搜索&>
&>
相当于&1>
,是指将标准输出重定向到/dev/null
。/dev/null
相当于垃圾箱,这么写,ping的输出将不会输出在屏幕上。也可以省略&
,写成> /dev/null
。但对于标准错误,不能省略,必须写成&2
。
另外,在unix系统中,任何进程在启动时,默认打开3个描述符,分别为0,1,2,表示标准输入、标准输出和标准错误,默认情况下,这三个描述符指向终端。shell提供一种重定向的写法,支持将这三种描述符重定向到其他地方。