Linux学习笔记之:学习Shell Script

(格式约定:标题2,标题3 命令或终端显示 文件名或文件关键内容

1 开始

1.1 输入和输出

        1,使用-e参数在echo中显示\n
        2,用 chmod u+x aaa.sh命令改变.sh权限,可以直接用文件名执行
Linux学习笔记之:学习Shell Script_第1张图片

1.2 变量的测试


        使用 ${MSG:-"guten tag"}命令来测试变量MSG是否为空或者未设置,如果为空或者位设置,则设置为"guten tag"
        使用 ${MSG-"guten tag"}命令来测试变量MSG是否未设置,如果未设置,则设置为"guten tag"
        更多在在鸟哥的Linux私房菜315页
         Linux学习笔记之:学习Shell Script_第2张图片

1.3 算数运算

        使用$(( ))来进行算数运算
        

1.4 使用$()获得其他命令返回

         Linux学习笔记之:学习Shell Script_第3张图片
        上例中,使用了 $(date)命令获得了今天的日期

2 逻辑

2.1 使用test命令来测试

        测试案例如下
         Linux学习笔记之:学习Shell Script_第4张图片
        上述测试例子中,首先测试 /dev/fb是否存在,然后判断 /dev/fb是字符型设备还是块类型设备,经过测试, /dev/fb是字符型设备, 略毁三观

2.2 使用while [ ] 实现循环

        例子如下
         Linux学习笔记之:学习Shell Script_第5张图片
        执行结果如下
         Linux学习笔记之:学习Shell Script_第6张图片
        上例中有如下要点
        1,使用了while循环
        2,使用了 while [ 1 -eq 1 ]实现C语言中的while(1)的功能
        3,使用了 date命令来判断输入日期是否正确(但是这样可能没有移植性,测试版本 centos 6.4 kernel:2.6.32.65)
        4,使用了 /dev/null文件来湮没掉垃圾输出

2.3 使用if实现判断

        测试例子如下
         Linux学习笔记之:学习Shell Script_第7张图片
        本例中使用了正则表达式=~

2.4 使用case进行选择

        示例代码如下
         Linux学习笔记之:学习Shell Script_第8张图片
        运行结果如下
         Linux学习笔记之:学习Shell Script_第9张图片

2.5 使用for 进行数组遍历

        例子如下
         Linux学习笔记之:学习Shell Script_第10张图片
        上述例子先定义了一个数组,然后循环ping之并获得结果,其运行结果如下:
         Linux学习笔记之:学习Shell Script_第11张图片
        问题:1,google上不去但是给出了能ping的结果(后来发现确实能ping通。。。但是确实上不去) 2, 无法ctrl+c结束程序
        

2.6 使用函数

        还是2.5中的案例,代码如下
         Linux学习笔记之:学习Shell Script_第12张图片
        这个例子中,把实现的ping功能放到了函数里 (仅仅是为了测试函数而已)
        注意:1,shell中的函数的返回值的两种方法 (1)echo,然后用$()获得结果 (2)全局变量
        测试的结果跟2.5中的一样

2.7 综合例子

        这个示例仿照系统自带的seq命令,不过对象是字母
         Linux学习笔记之:学习Shell Script_第13张图片
         Linux学习笔记之:学习Shell Script_第14张图片
         Linux学习笔记之:学习Shell Script_第15张图片
        测试结果
         Linux学习笔记之:学习Shell Script_第16张图片
        在这个例子中,函数、正则表达式、格式化输入输出、流程控制等都得到了应用。
        以上,Shell Script这一章暂时告一段落。
        

你可能感兴趣的:(Linux,shell,linux,正则表达式)