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

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

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

[root@localhost ~]# ping 192.168.50.1 -c 4 | grep received
图片.png

[root@localhost ~]# ping 192.168.50.1 -c 4 | grep received | awk '{print $4}'
图片.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
图片.png

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

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

5.测试

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

[root@localhost ~]# ./ping.sh 192.168.50.1
图片.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

Linux 下第一个shell脚本相关推荐

  1. 解决Linux下无法利用shell脚本启动conda虚拟环境问题

    解决Linux下无法利用shell脚本启动conda虚拟环境问题 问题 直接在脚本中激活conda环境时遇到了一个问题 解决 查看.bashrc文件 .bashrc文件在 /home/用户名 里面,因 ...

  2. Linux下如何执行Shell脚本

    Linux下如何执行Shell脚本 Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等 ...

  3. Linux下eclipse中shell脚本编程环境的搭建

    注意:本文所用到的linux发行版是fedora 15.如果用fedora 15以上的版本可能会有问题.至于解决方案或者是搭建方法我会尽量抽出时间写一篇新的博客... 本文主要是介绍在linux平台下 ...

  4. linux如何调试脚本文件目录,如何在Linux下调试Bash Shell脚本的方法

    新手写了一个 hello world 小脚本,如何能调试运行在 Linux 或者类 UNIX 的系统上的 bash shell 脚本呢? 这是 Linux / Unix 系统管理员或新用户最常问的问题 ...

  5. Linux下定时执行shell脚本

    1.定义shell脚本 vi test.sh 录入要执行的命令 source /etc/profile source ~/.cshrcdate >> /opt/data.txt 保存退出, ...

  6. linux启用shell脚本,linux下开机启动shell脚本

    背景 设置比较炫酷的开机启动脚本 首先,新建一个kaiji.sh 后缀名的脚本-->新建的脚本在任何位置创建都可以,只要在使用.sh 文件,时候使用绝对路径即可 [root@hf-01 ~]# ...

  7. linux后台启动脚本nohup,linux下后台执行shell脚本nohup

    [GSM]GTM900C的应用--短信 虽说GSM已经很老旧,但其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合. 不知道GSM能否像51单片机一样,在低端应用中长久不衰.GTM90 ...

  8. linux下后台执行shell脚本

    一句话 nohup sh startup_Server.sh & 转载于:https://www.cnblogs.com/phpcode/archive/2012/04/24/2522761. ...

  9. linux 重启服务器脚本,linux下服务器重启shell脚本

    drwxr-xr-x. 4 richmail richmail 4096 12月 8 15:17 admin drwxr-xr-x. 5 richmail richmail 4096 12月 11 0 ...

最新文章

  1. SpockFS —— 基于 HTTP 的文件系统
  2. future java 多线程_Java多线程之Future与FutureTask
  3. 如何开发一个异常检测系统:如何评价一个异常检测算法
  4. iOS10 打开APP设置界面和WIFI界面
  5. 3123称重显示控制器说明书_失重秤在自动化配料系统中的应用 - 工业自动化称重仪表...
  6. [TJOI2009] 战争游戏
  7. 小白_Unity引擎_Console控制台
  8. (十四)洞悉linux下的Netfilteriptables:开发一个match模块【实战】
  9. BigGAN论文解读
  10. 像素图片转矢量图片——从图像中提取曲线信息
  11. 浅析欢乐时光(HAPPY TIME)病毒 (转)
  12. Java批量下载有道单词发音+与Anki卡片整合
  13. 如何实现阿里云服务器数据迁移?
  14. 计算机usb接口失灵,电脑usb接口全部失灵
  15. Linux - 零拷贝技术
  16. python 图灵机器人_图灵机器人 python 试玩
  17. MySQL基础篇3——DDL、DML、DCL使用篇
  18. TIA博途SCL编程学习21_4个数字中的3个数字的排列组合
  19. 无法进入BIOS解决
  20. 关于xp系统下的IIS 500错误

热门文章

  1. GraphQL —— 标量类型
  2. 如何用纯 CSS 创作一双黑暗中的眼睛
  3. 在linux中添加字体
  4. 堆排序工具类(适用于top k问题,java泛型实现)
  5. nodejs安装失败
  6. 开发过程中的注意事项,想到哪写到哪
  7. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)...
  8. 售前工程师的成长---一个老员工的经验之谈(5)
  9. sql server2000中如何自动杀死死锁进程
  10. Tomcat的BIO、NIO、ARP模式