各位老铁们好,相信很多人对Linux Shell脚本技术详解,并附示例都不是特别的了解,因此呢,今天就来为大家分享下关于Linux Shell脚本技术详解,并附示例以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
1、明确自己的想法:当我们要实现一个功能,需要写脚本时,一定不能一想到就写。我们应该避免先编写命令,然后在需要功能时再完善它。这种写法在结构上经常出现,而且很难调整。问题。在开始编写脚本之前,我们必须提前明确如何实现这个功能,包括使用哪些命令以及命令的顺序。
2、总体看法:我们明确了剧本的思路之后,还不能马上开始写。这时候我们就需要在脑海中思考每一步可能出现的情况,以及当各种情况出现时如何处理。在shell脚本中,有可能我们想要实现一个看似简单的功能,我们会需要多个条件判断,因为我们当前系统上发生的情况只是众多情况中的一种。我们希望在任何机器上实现该脚本。为了让一切顺利进行,我们必须有一个“大局观”。通俗地说,就是一个消除bug的过程。
3. 小心如丝:正如大家所感叹的那样,shell 脚本有大量的引号、括号和空格。每一个都有不同的含义。多个空格和较少空格具有不同的含义。您可以一次编写数十行的shell 脚本。写完之后想要不报错运行还是很难的。当我开始学习shell脚本时,我强迫自己养成一种习惯,每次写完一行就检查各种符号和括号。一开始速度很慢,但是越写越快,错误率也随之增加。它变得越来越低。当你养成一种习惯时,写这些符号就成了一种习惯,不再像开始时那么痛苦了。
4、好记性不如坏键盘:虽然有句不好听的话,但还是提醒一些正在学习shell脚本的朋友说一下还是有好处的。当你在抱怨shell脚本写起来多么困难、容易出错时,你总共写了多少行shell?你敲了多少次键盘?
1、检测服务器是否开启web服务(监听80),并判断服务种类
#!/bin/bash########################################## ##########检测服务器是否开启了Web服务(监听80),并判断服务类型#################### ################################捕获80端口监听的服务名netstat -lntp|grep ‘:80’|awk -F ‘/’ ‘{print $2}’|sort|uniq /tmp/80.logn=`wc -l /tmp/80.log|awk ‘{print $1}’`s1=`cat /tmp/80. log`# 判断服务类型function Judge_server(){case $1 in httpd) echo ‘this server is apache’; nginx)echo ‘此服务器是nginx’; tomcat)echo ‘此服务器是tomcat’; *)echo ‘此服务器是其他服务器’;esac}if [ $n -eq 0 ] thenecho ‘没有网络服务器! exit fiif [ $n -eq 1 ] thenjudge_server $s1 elseecho ‘cat /tmp /80.log`judge_server $webfi 中的网络有$n 个网络服务器’
2、检测MySQL服务是否正常,判断是主库还是从库,如是从库判断主从服务是否正常
#!/bin/bash########################################## ########################检查MySQL服务是否正常,判断是主库还是从库。如果是从库,判断主从服务是否正常################################### ############################mysqlcmd=’mysql -uroot -p123456’# 判断MySQL服务是否正常(执行MySQL 命令正确) $mysqlcmd -e ‘show processlist’if [ $? -gt 0 ] 然后echo ‘这个mysql 是错误的。’ else #如果是从库,会有返回值$mysqlcmd -e ‘show Slave status\G’ /tmp/sql.log n=`wc -l /tmp/sql.log |awk ‘{print $1 }” if [ $n -gt 0 ] then y1=`grep ‘Slave_IO_Running:’ /tmp/sql.log`|awk -F ‘:’ ‘{print $2}’|sed ‘s///g’` y2=`grep ‘Slave_SQL_Running:’ /tmp/sql.log`|awk -F ‘:’ ‘{print $2}’|sed ‘s///g’` if [ $y1==’是’ ] [ $y2==’yes’ ] then echo ‘从站没问题’ else echo ‘从站错了’ fi fifi
3、计算100以内所有能被3整除的正整数的和
#!/bin/bash########################################## ###计算100以内所有能被3整除的正整数之和################################### ##########sum=0for i in {1.100}do #求余数n=$[$i%3] if [ $n -eq 0 ] then sum=$[$ sum+ $i] fidoneecho ‘sum:$sum’
4.统计内存使用情况
#!/bin/bash##########################################计算总和Linux系统中所有进程占用的内存大小######################################## ## count=0# 这个循环会遍历每个进程占用的内存大小for i in `ps aux |awk ‘{print $6}’ |grep -v ‘RSS’`do # 累加遍历的个数count=$ [$ count+$i]done # 获取所有进程占用的内存大小总和echo ‘$count/kb’
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/112356.html
用户评论
巷口酒肆
终于找到这篇文章了!一直在学习Shell脚本,总觉得自己理解不够透彻,这个文章讲解得很细致,而且实例说明也很棒,让我对脚本编写有了更深刻的认识。
有19位网友表示赞同!
清原
作为一个刚进入编程世界的新手学Linux Shell脚本实在太难了!幸好找到这篇博文,虽然内容比较详解,但我仔细看了以后感觉豁然开朗,很多技巧之前真没想到!
有11位网友表示赞同!
采姑娘的小蘑菇
Shell脚本确实强大,但这篇文章说的技巧有些太专业了,我目前的水平还难以理解。希望作者能推出更针对初学者入门讲解的课程或文章!
有12位网友表示赞同!
疯人疯语疯人愿
Shell脚本真是太常用啦!这篇解释的技巧很实用,尤其是脚本可读性和注释部分,让我以后编写脚本更有条理性!
有12位网友表示赞同!
有阳光还感觉冷
我觉得这些技巧虽然有用,但还是有些枯燥,希望作者能在以后的文章中加入一些更实盘案例和实战应用分享,这样更容易让读者理解和记忆!
有14位网友表示赞同!
冷月花魂
学习Shell脚本是一个漫长的过程,这篇博文虽然详细,但毕竟只是一个入门指南。想要精通Shell脚本还需要不断实践和积累经验!
有11位网友表示赞同!
丢了爱情i
这篇文章把Shell脚本的编写技巧总结得非常全面了!不管是初学者还是对Linux Shell脚本有一定基础的人都可以从这篇博文中受益匪浅!
有17位网友表示赞同!
■□丶一切都无所谓
我发现很多Linux系统命令可以用Shell脚本来自动化,这对于提高工作效率提升真棒!这次学习终于能用上这些实用技巧!
有20位网友表示赞同!
雪花ミ飞舞
虽然文章解释得很清楚了,但我还是不太明白某些高级技巧的应用场景,希望作者可以进一步讲解一些典型案例,以便我更好地理解!
有6位网友表示赞同!
七级床震
这篇博文是我接触Linux Shell脚本以来最全面的介绍,它不仅涵盖了基本语法和常用命令,还详细阐述了一些脚本编写技巧。值得收藏!
有16位网友表示赞同!
余温散尽ぺ
这篇文章写的很好,解释透彻,而且实例说明也很生动形象,让我更容易理解Shell脚本的编写原理!
有20位网友表示赞同!
掉眼泪
对Linux Shell脚本了解的不多,这篇文章就正好解决了我的一些困惑,学习起来也更轻松了!感谢作者分享这么宝贵的经验!
有12位网友表示赞同!
轨迹!
我觉得文章缺少一些对常见错误问题的解答和解决方法,这对于新手来说非常有帮助!
有7位网友表示赞同!
今非昔比'
学习Shell脚本的过程就像解开一个迷宫,这篇博文给了我很多重要的提示,让我更容易找到通往成功的出口!
有10位网友表示赞同!