第四章 Linux Shell程序设计
【shell概述】
1、shell是Linux系统的重要层次,它是用户与系统交互的界面,shell不仅作为命令解释程序使用,还是一种高级程序设计语言,利用shell程序设计语言可以编写功能很强且代码。
2、shell的特点:
①对已有命令进行适当组合为新的命令。
②提供文件名拓展字符(通配符:*,?,[ ])。
③可以直接使用shell内置命令。
④灵活的使用数据流。
⑤结构化的程序模块,提供顺序、条件、循环等控制流程。
⑥提供在后台执行命令的能力。
3、shell特殊字符:
通配符:
(*):匹配任意字符的出现。但应注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显式匹配。
例如:*file.profile(×).*file .profile(√)/etc*.c(×)/etc/*.c(√)
(?): 匹配任意一个字符。
([ ]): 匹配括号中所限定的任意一个字符。
例如:f[abcd]可以匹配fa、fb、fc、fd (也可写为f[a-d])
(!): 表示不在方括号中所列出的字符。
例如:f[!1-9]表示以f开头,后面字符不是数字1~9的文件名。
5、shell变量:
①变量名:变量名是以字母或下划线开头的字母、数字和下划线,并且大小写意义不同。
②变量赋值:变量名=字符串
注意:赋值号两边不能有空格,在赋给变量的值中含有空格、制表符或换行符应该用双引号把这个字符串括起来。(name="zhang xin")
③引用变量值:shell使用变量的值时,要在变量名前加上$符号。(echo $file)
④删除用户变量:变量名=null(unset 变量名)
4、数值判断操作符:
①-eq(等于): num1 -eq num2 num1和num2相等
②-ne(不等于): num1 -ne num2 num1和num2不相等
③-gt(大于): num1 -gt num2 num1大于num2
④-ge(大于等于): num1 -ge num2 num1大于等于num2
⑤-lt(小于): num1 -lt num2 num1小于num2
⑥-le(小于等于): num1 -le num2 num1小于等于num2
5、shell程序设计题:
例如:进行100+300+50的运算,将结果存入数值变量sum中:
a=100 b=300 c=50
let sum=a+b+c
echo "100+200+300=$sum"