[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 编辑 ] 好深奥~~~ 楼主,,,share下你学shell看些什么书籍资料...我最近在狂郁闷... 谢谢分享!!! 主要是看<LINUX与UNIX SHELL编程指南>,电子版的.
还有就是在学校借的<精通unix shell脚本编程> 楼上的,,,我下午去学校图书馆找不到你说的这本书... 貌似我借的时候只有一本的说....em016 版主麻烦发你那书的电子版给我行吗?
我这里有上几个G的英文原版电子书, 互相Share. 原帖由 hjack 于 2006/3/20 02:13 PM 发表
貌似我借的时候只有一本的说....em016
原来是你...:L Shell we talk 6... 挖坟
页:
[1]