您的位置:首页 > 运维架构 > Shell

Linux学习笔记之:学习Shell Script

2015-04-13 08:45 225 查看
(格式约定:标题2,标题3 命令或终端显示
文件名或文件关键内容)

1 开始

1.1 输入和输出

1,使用-e参数在echo中显示\n
2,用chmod u+x aaa.sh命令改变.sh权限,可以直接用文件名执行



1.2 变量的测试

使用${MSG:-"guten tag"}命令来测试变量MSG是否为空或者未设置,如果为空或者位设置,则设置为"guten tag"
使用${MSG-"guten tag"}命令来测试变量MSG是否未设置,如果未设置,则设置为"guten tag"
更多在在鸟哥的Linux私房菜315页



1.3 算数运算

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



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



上例中,使用了$(date)命令获得了今天的日期

2 逻辑

2.1 使用test命令来测试

测试案例如下



上述测试例子中,首先测试/dev/fb是否存在,然后判断/dev/fb是字符型设备还是块类型设备,经过测试,/dev/fb是字符型设备,略毁三观

2.2 使用while [ ] 实现循环

例子如下



执行结果如下



上例中有如下要点
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实现判断

测试例子如下



本例中使用了正则表达式=~

2.4 使用case进行选择

示例代码如下



运行结果如下



2.5 使用for 进行数组遍历

例子如下



上述例子先定义了一个数组,然后循环ping之并获得结果,其运行结果如下:



问题:1,google上不去但是给出了能ping的结果(后来发现确实能ping通。。。但是确实上不去) 2,无法ctrl+c结束程序

2.6 使用函数

还是2.5中的案例,代码如下



这个例子中,把实现的ping功能放到了函数里(仅仅是为了测试函数而已)
注意:1,shell中的函数的返回值的两种方法 (1)echo,然后用$()获得结果 (2)全局变量
测试的结果跟2.5中的一样

2.7 综合例子

这个示例仿照系统自带的seq命令,不过对象是字母







测试结果



在这个例子中,函数、正则表达式、格式化输入输出、流程控制等都得到了应用。
以上,Shell Script这一章暂时告一段落。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: