hjack 发表于 2006-3-19 18:57

[SHELL we talk之一]ping所有主机的shell脚本

近来学习linux shell下的编程,

边学边用,写了一个ping所有主机的脚本.

先放出代码吧.

#!/bin/sh
#pingall
#2006.3.19
#从/etc/hosts文件中找出主机信息,过滤后剩下IP项,再ping该主机.
cat /etc/hosts | grep -v ^# |grep -v ^$ | while read LINE
do
   for M in `awk '{print $1}'`
    do
      ping -c1 $M
   done
done


注释:
cat file是显示文件.
grep是文本过滤,-v选项是显示不包含匹配文本的行,^#表示以#开头的行.
grep -v ^# 表示不显示以#开头的行.
grep -v ^$ 表示不显示空行.
通过管道(|)的方式把前者的输出作为后者的输入.
并用while读取只有IP的文本的每一行.
用awk命令来输出该IP串.注意,`awk '{print $1}'`里,外面是用反引号引起来的,里面的是单引号.要区分开来,反引号表明这是一个命令.而单引号是awk要求的.
再用for来遍历每行IP串,在for里进行ping主机.用了-c选项,这样可以在ping了c选项指定的次数后退出ping命令.否则会一直ping下去的.

[ 本帖最后由 hjack 于 2006-3-27 12:41 编辑 ]

拥吻 发表于 2006-3-19 21:20

好深奥~~~

wool王 发表于 2006-3-19 21:23

楼主,,,share下你学shell看些什么书籍资料...我最近在狂郁闷...

jhony 发表于 2006-3-20 00:41

谢谢分享!!!

hjack 发表于 2006-3-20 13:04

主要是看<LINUX与UNIX SHELL编程指南>,电子版的.
还有就是在学校借的<精通unix shell脚本编程>

wool王 发表于 2006-3-20 21:55

楼上的,,,我下午去学校图书馆找不到你说的这本书...

hjack 发表于 2006-3-20 22:13

貌似我借的时候只有一本的说....em016

黯然销魂 发表于 2006-3-22 11:18

版主麻烦发你那书的电子版给我行吗?

我这里有上几个G的英文原版电子书, 互相Share.

wool王 发表于 2006-3-22 15:55

原帖由 hjack 于 2006/3/20 02:13 PM 发表
貌似我借的时候只有一本的说....em016


原来是你...:L

onttpi 发表于 2008-6-9 01:00

Shell we talk 6...

Leon001 发表于 2008-6-9 01:09

挖坟
页: [1]
查看完整版本: [SHELL we talk之一]ping所有主机的shell脚本