linux shell脚本编写实例_常用的shell脚本

2022-11-10 11:32:23 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

LINUX Shell脚本编程实例详解(一)上

ping命令测试网段内主机的2例详解

使用linux已经有10来年了但是一直止于各种服务器的搭建和环境的调优,能力不能得到提升,今天突然下定决心学习Shell脚本编程,因此以网上广为流传的《Shell脚本100例》为基础学习、实验和笔记。

废话不说上栗子。

使用vim shell100-scanip-1.sh命令创建脚本文件

代码语言:javascript复制
#!/bin/bash
for i in {1..254}
do
        ping -c2 -i0.3 -W1 192.168.18.$i &>/dev/null
        if [ $? -eq 0 ];then
                echo "192.168.18.$i is up"
        else
                echo "192.168.18.$i is down"
        fi
done

解释:

第一句 #!/bin/bash

在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。 目前研发送测的shell脚本中主要有以下两种方式: (1) #!/bin/sh (2) #!/bin/bash

止于使用sh还是bash来解释的区别后边抽时间专门写一篇文章,这里不在详述

第二句 for i in {1..254}

do

……

done

是循环结构,for循环类似程序中的for循环,i为循环变量,循环变量值在in{}里依次循环,循环体从do开始,done结束。

第三句ping -c2 -i0.3 -W1 192.168.18.$i &>/dev/null

ping命令参数

-c2:设置完成要求回应的次数;这里设置为2是考虑网络路由的问题导致第一次ping不能返回而第二次ping可以返回的情况(具体原因请自行阅读网络原理)

-i0.3:指定收发信息的间隔时间(秒计),这里的时间是综合考虑ping命令返回超时的时间和每次ping的时间,原则应为:返回超时<i参数<ping命令发送间隔。

-W1:即超时时间(毫秒计),这里表示超时时间为1毫秒,也就是说一毫秒后ping命令结束。

&>/dev/null :表示将标准输出stdout和标准错误输出stderr重定向到null的设备中,也就是说不打印到屏幕上了,而且也不保存文件(放到名叫null的设备中——无底洞永远消失)。

第四句判断语句

if [ $? -eq 0 ];then …… else …… fi

if判断语句 [ ]中为判断表达式,$?表示最后运行是否成功,成功为0 不成功为1

第五句、第六句

echo “192.168.18.i is up”、echo “192.168.18.i is down”表示回显到屏幕上

栗子1解释完毕,待续

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186424.html原文链接:https://javaforall.cn

0 人点赞