- 论坛徽章:
- 39
|
本帖最后由 关阴月飞 于 2013-02-04 17:12 编辑
回复 5# fmylife
for i in `seq 2 12`;do ping -c 2 10.13.16.$i|grep -q 'ttl=' && echo "10.13.16.$i is alive" ;done
&&:
ping -c 2 10.13.16.$i|grep -q 'ttl=' 只有这段命令返回值 为真 (即$? 为 0), 才执行 echo "10.13.16.$i is alive"
你运行后没有输出, 很正常嘛, 说明你ping 10.13.16.2 ~ 10.13.16.12 这段IP后 , grep都没有在 ping命令的输出中 找到 'ttl=' 既$? 不为 0 ,后面的 echo "10.13.16.$i is alive" 就不执行了.
另外命令可以改写成 if 的方式:
- for i in `seq 2 12`;do if ping -c 2 10.13.16.$i |grep -q 'ttl=' ;then echo "10.13.16.$i is alive" ;done
复制代码 |
|