前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux shell脚本编写实例_常用的shell脚本

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

作者头像
全栈程序员站长
发布2022-11-10 11:32:23
3.2K0
发布2022-11-10 11:32:23
举报
文章被收录于专栏:全栈程序员必看

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LINUX Shell脚本编程实例详解(一)上
    • ping命令测试网段内主机的2例详解
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档