Linux 下第一个shell脚本

shell脚本可以高效的完成一件事情,和批处理一个意思。学习写第一个shell脚本。
今天开始写一个判断能否ping通ip的脚本
1.首先我们看看ping通与不同之间的区别
可以ping通的情况,如下图所示:

img_e905179617234915919c3042b23d4a8b.png

不可以ping通的情况,如下图所示:

img_c2694f43cc26be3dc5fae619dcd8341d.png

通和不通区别的地方有很多,随便找一个不同点就可以判断其还是不同
2.这里我们就找上图标注得到地方作为区别,即如果是不通的情况下,received的数字一定为0,如果通,那received的数字就是非0.
想个办法过滤出0这个字段

[root@localhost ~]# ping 192.168.50.1 -c 4 | grep received
img_95b634549014a1fd053c6b38b6b9e5eb.png
图片.png
[root@localhost ~]# ping 192.168.50.1 -c 4 | grep received | awk '{print $4}'
img_ac7db216f0cb341863dfa728ae4551c7.png
图片.png

3.有上面办法就可以写一个ping脚本了.
ping.sh

#!/bin/bash
IP=$1
pre=`ping $IP -c 4 | grep received | awk '{print $4}'`
if [ $pre == 0 ]
then
echo "ping".$IP."bu tong"
else
echo "ping".$IP."tong le"
fi
[root@localhost ~]# ll | grep ping.sh
img_7aa299125967096bb309e4ff78c77a1f.png
图片.png

可以看到我们写的ping.sh脚本还没有可执行权限。
4.给脚本文件可执行权限

[root@localhost ~]# chmod +x ping.sh 
[root@localhost ~]# ll | grep ping.sh
img_9db62aa1513c1b4d5a85551f465a560b.png

5.测试

[root@localhost ~]# ./ping.sh 1.1.1.1
img_f721f405e5bdf2fc785dca3ab15f2fdd.png
图片.png
[root@localhost ~]# ./ping.sh 192.168.50.1
img_c420c45d5133e61a3528e66f7d4ee5a1.png
图片.png

注:bash调试脚本

[root@localhost ~]# bash -x ping.sh 1.1.1.1
+ IP=1.1.1.1
++ grep received
++ awk '{print $4}'
++ ping 1.1.1.1 -c 4
+ pre=4
+ '[' 4 == 0 ']'
+ echo 'ping.1.1.1.1.tong le'
ping.1.1.1.1.tong le
[root@localhost ~]#

改进程序:循环一个ip.txt

#!/bin/bash
if [ ! -s ip.txt ]
then
echo "ip.txt file is none"
else
ipnum=`sed -n '$=' ip.txt`
for ((i=1;i<="$ipnum";i++))
do
ip=`sed -n "$i"p ip.txt`
pre=`ping $ip -c 4 | grep received | awk '{print $4}'`
if [ $pre == 0 ]
then
echo "$ip down"
else
echo "$ip up"
fi
done
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值