linux Shell学习笔记最后一节,温故与知新

所属分类: 脚本专栏 / 其它 阅读数: 676
收藏 0 赞 0 分享

脚本编写技巧

脚本文件名命名规则

        文件名的字符包括

        字母、数字、"."、"_"和"-", 注意:脚本的文件名命名不能以数字开头。

脚本文件名的命名,尽量使用英文单词、词组或短句的缩写。

脚本版本管理:

        脚本作用.主版本号.修改次数.shell类型

变量命名规范

        变量名可以由数字和字母组成

        变量名采用全部英文字符小写的方式

        变量名称尽量使用缩写,最好不要超过6个字符

        ${变量名} 例:${port},${ipaddr}…

脚本代码注释规范

        脚本代码注释可以使用"#"和";(分号)"两种方式进行注释。#一般由于描述性的注释,旨在说明代码的作用或怎么使用。

        而;通常用于示例性的注释,特别是在一些配置文件中常常会用到,因此我们沿用这两种方式来对我们的脚本进行注释。

引用符号使用规范

        尽量少用单引号

        对极个特殊字符进行屏蔽特殊含义时,使用\(反斜线)进行屏蔽

        使用带引号进行屏蔽字符时,单引号内一般不适用其他引用符号,除非是打印特殊符号本身。

        使用反引号进行执行一个shell命令时,反引号内一般加其他引用符号。

脚本函数定义规范

        变量名可以由数字和字母组成

        使用驼峰命名法(从第二个单词开始,每个单词首字母大写)

        名字尽量不使用缩写,除非它是众所周知的

        名字可以有两个或三个单词组成,但通常不应多于三个

文本输出排版

第一天课后作业

1、grep "20081011" text.txt                            取出这一天的数据

2、grep "200804" text.txt                            取出这一个月的数据

3、grep "200806" text.txt | grep -v "-"                    取出一个月的上涨数据

4、grep "200807" text.txt | grep -v "-" | wc -l            列出有几天是上涨个数,带统计

5、grep "200808" text.txt | sort -k5 -n | tail -1            判断上涨,然后tail取最后一行

grep "200808" text.txt | sort -k5 -r |head -1            判断上涨,然后head取第一行

6、grep "200810" text.txt | awk '{if($4>0){print $1,$5}}'    取出一月中上涨数据时间和上涨幅

7、grep "200811" text.txt | awk '{if($4>5 && $4<20){print $0}}'        判断区间取出整行

 

脚本代码实例分析1

    编写一个shell脚本,执行脚本后自动ping以下地址:

        192.168.1.1,192.168.1.31

    以上IP地址直接写在脚本之中。执行完成后,

应显示能够ping通的IP地址和不能够ping通的IP地址

 

 

    #!/bin/bash

    if ping 192.168.1.1 -c 1

then

    echo "192.168.1.1 online"

else

    echo "192.168.1.1 offline"

fi

if ping 192.168.1.31 -c 1

then

    echo "192.168.1.31 online"

else

    echo "192.168.1.31 offline"

fi

 

脚本代码实例分析2

修改分析1,但是从iplist.txt中读取IP

 

#!/bin/bash

for ip in `cat iplist.txt`

do

    if ping $ip -c 1

    then

        echo "${ip} online"

    else

        echo "${ip} offline"

    fi

done

 

脚本代码实例分析3

修改分析2,去除无用的信息

 

#!/bin/bash

for ip in `cat iplist.txt`

do

    if ping $ip -c 1 >/dev/null 2>&1

    then

        echo "${ip} online"

    else

        echo "${ip} offline"

    fi

done

 

 

脚本代码实例分析4

修改分析3,生成记录

 

#!/bin/bash

>hoststatus.txt

for ip in `cat iplist.txt`

do

    if ping $ip -c 1 >/dev/null 2>&1

    then

        echo "${ip} online" |tee -a hoststatus.txt

    else

        echo "${ip} offline" |tee -a hoststatus.txt

    fi

done

 

脚本代码实例分析5

产生一个IP地址池,生成255个IP,并修改分析4,实现多线程ping

 

#!/bin/bash

>iplist

for ip in `seq 1 255`

do

    echo "192.168.1.${ip}" >>iplist

done

 

#!/bin/bash

>hoststatus.txt

>temp

fastping()

{

    if ping ${1} -c 1 >/dev/null 2>&1

    then

        echo "${ip} online" |tee -a temp

    else

        echo "${ip} offline" |tee -a temp

    fi

}

for ip in `cat iplist.txt`

do

    fastping $ip &

done

wait

sort -t. -k4 -n temp >hoststatus.txt

rm temp

 

temp ./ping.sh            测试一个脚本执行多久

更多精彩内容其他人还在看

用CE5.2版找武林外传一级基址的方法(图文教程)

好帖子,正好解决了我的遇到的瓶颈问题,收藏一下
收藏 0 赞 0 分享

linux Shell学习笔记第一天

从昨天开始看Shell的教程到现在已经两天了。现在把记录的笔记发出来,目前是很乱,主要是留给自己看看,后续等差不多了会整理统一发布出来。
收藏 0 赞 0 分享

linux Shell学习笔记第二天

今天做笔记稍微整理了下,但是避免不了出现错误,如果有错误麻烦大家给提出,本文最后将会共享今天的三个脚本文件。
收藏 0 赞 0 分享

linux Shell学习笔记第三天

今天收获还是比较多的。 半个小时的教程看了将近3个小时
收藏 0 赞 0 分享

linux Shell学习笔记第四天

今天的内容比较重要。循环的,课后作业还在研究中,出来答案后会贴到最后。
收藏 0 赞 0 分享

linux Shell学习笔记第五天

最近看Shell有点头晕了,再看一天就要忙公司的squid问题了。 现在双线机房即将成为单线机房。
收藏 0 赞 0 分享

linux Shell学习笔记最后一节,温故与知新

linux Shell学习笔记最后一节,这节是对前面章节的小结,学习shell编程的朋友可以参考下。
收藏 0 赞 0 分享

一个不错的shell 脚本教程 入门级

一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂
收藏 0 赞 0 分享

脚本发生错误怎么解决 当前页的脚本发生错误的解决方法小结

我们经常在访问网页的时候,右下角经常出现脚本错误提示,记得一家国外的银行因为这个原因导致业务受到很大的影响,如果放到网站上对用户也容易产生一些错觉,网站有问题,不安全等等疑问
收藏 0 赞 0 分享

Perl 与 Python 之间的一些异同整理

Python 和 Perl 作为主流脚本语言中的成员,在语法等方面有很多相似之处,却又存在一定的差异。本文通过对这两种语言的比较,从而使得相关开发人员可以更深刻的了解和掌握这两种语言
收藏 0 赞 0 分享
查看更多