第八章 算数运算
8.1 简介
(1)求值时,若算数式变量不存在或空值,该变量为0
(2)数字以0开头,视为八进制数,0X开头为十六进制;不同进制的数可以使用“基底#数字”表示
(3)运算符有优先级,初单算关逻条赋逗
8.2 扩展
(1)算数扩展:$( (表达式) ),表达式中可含有变量扩展
8.3 使用外部程序expr做算术运算
(1)语法:expr 表达式,将表达式结果在屏幕上输出
(2)expr范例(使用expr要对表达式中出现bash shell特殊字符进行转义,\)
r=’expr 参数1\|参数2‘ ,如果参数1存在非空且不为0则传回参数1,否则为参数2
r='expr 参数1\&参数2’,如果参数1与参数2皆存在,非空且不为0,则传回参数1的值,否则传回0
参数1与参数2比较,例如r='expr 参数1\<参数2’,成立则传回1
加,减,乘(需加转义符),除,求余,递增,对比,找出子字符串位置,取子字符串,计算字符串长度,视关键词为一般字符串(具体语法见书籍)
8.4 使用$[]做算术运算
语法:r=$[表达式]
8.5 使用delcare,let做算术运算
(1)dalcare 例子(注意,不需转义,也不需在变量前加$)
delcare -i a //将a声明为整型
a=2+3
(2)let(注意同delcare)
let a=2+3,let b=a+2
第九章 流程控制
选择:if,case 循环:for,while,until
select既属于选择也属于循环
9.1 命令的结束状态
(1)命令执行结束传回状态值,命令执行成功,传回0(真值),失败为非零值(假值)
(2)bash内置变量: $?
9.2 if条件判断
(1)简单的if语法
if-then;if-then-else
(2)if的完整语法
if-then-elif-then-else
( (a>b) )与let “a>b"两者的应用
9.3 条件测试的写法
(1)执行某一个命令的结果
(2)!传回某个命令执行结果相反值
(3)使用复合命令:算式,算式结果非0,传回真值0,结果为0,传回假值1
(4)使用bash关键词’ [[ '与' ]] '组成的式子: [[ 判断式 ]],判断式为真,传回真值0
(5)使用内置命令:test判断式,判断式为真,传回真值0
(6)使用内置命令:[ ],形式如[判断式],同test相同
(7)使用-a(且),-o(或)进行逻辑组合
(8)&&(命令1&&命令2,命令1为真则执行命令2)
||(命令1||命令2,命令1为假则执行命令2)
&&与||合用可以起到if-then-else的效果
注:
(1)条件测试方法中只有[[ ]]可以不受特殊字符的影响,不用转衣符,同(( ))
(2)[[判断式]]中,若果使用==或者!=,字符若没有引号,表示比较样式,加上引号才表示比较二者是否相等
9.4 条件判断式的真假值
(1)“单元”以及“二元”条件判断式
(2)关于文件属性的判断式(-a,-b......)
(3)关于字符串的条件判断式(-z,-n,==,=,!=,<,>)
(4)对比字符串时,最好将两个字符串都打上双引号,避免变量内容为空时造成语法错误
(5)关于算式的条件判断式(-eq,-ne......)
9.5 case条件判断
(1)case的语法结构
(2)高级样式(?,*,+,@,!)
9.6 for循环
(1)for的语法结构(串行是一些字符串的组合,彼此用$IFS所定义的分隔字符,如空格符隔开)
for 变量 in串行
do
命令区域
done
(2)for另外的用法(类似于C语言)
for( (初始条件;终止条件;异动项) )
do
命令区域
done
(3)for无穷循环
9.7 while循环
(1)while语法
(2)while无穷循环
9.8 Until循环
(1)until语法
(2)until无穷循环
9.9 select命令
(1)select语法(select会给串行各个选项编号,从1开始递增)
select 选项变量 in 串行
do
命令区域
done
9.10 break和continue语句
(1)break命令
跳出多层循环,break n
(2)continue命令
continue n
9.11 综合运用实例
第十章 函数
10.1 函数的用法
(1)函数(function)的三种语法
(2)函数的结束状态(函数最后一个命令的传回值代表函数结束状态)
10.2 函数与变量的作用范围
(1)函数的作用范围
当前shell内有效,export -f 函数名称 传递给子shell
(2)变量的作用范围
在shell中定义的变量在函数中依然有效,在函数中定义local变量
10.3 位置参数
(1)传递参数: 函数名称 参数1 参数2.....当函数借用命令行的位置参数时,原位置参数会被暂时保存起来
(2)命令行的位置参数
(3)移动位置参数 shift
(4)指定位置参数值 set(原位置参数消失)
(5)取用命令行的选项和参数
语法:getopts 选项行 选项变量(使用方法见实例)
10.4 建立函数库
(1)函数库的建立
(2)函数库的调用方法
. 路径\函数库文件名或 source 路径\函数库文件名
10.5 递归函数
10.6 实例应用
学习掌握综合实例
第十一章 转向
11.1 文件代码
(1)转向输入,转向输出,转向附加