表达式求值
c=$($a + $b) "+"两边要求空格
C=`expr $A + $B`
C=$[$A+$B]
C=$(($A+$B))
let c=$a+$b
运算符优先级
分支结构
if
case
循环结构
while
for
条件判断命令test
可用中括号代替test,把表达式括起来实现判断
注意表达式与中括号间有空格。
函数定义
shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数
函数由两部分组成:
函数标题
函数体
标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结果,因为脚本在查看调用脚本前将首先搜索函数调用相应的shell
函数的使用
所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用
数组
数组是shell脚本非常重要的组成部分,它借助索引将多个独立的数据存储为一个集合。普通数组只能使用整数作为数组索引。
数组相关操作
${array[*]} 取关联数组所有值
${array[@]} 取关联数组所有值
${#array[*]} 关联数组的长度
${#array[@]} 关联数组的长度
关联数组
Bash也支持关联数组,它可以使用字符串作为数组索引。在很多情况下,采用字符串式索引更容易
理解,这时候关联数组就派上用场了。
在使用关联数组之前,需要使用命令declare -A array 进行显示声明
关联数组的操作
${!array[*]} ${!array[@]} ${array[*]} ${array[@]} ${#array[*]} ${#array[@]} | 取关联数组所有键 取关联数组所有键 取关联数组所有值 取关联数组所有值 关联数组的长度 关联数组的长度 |
五、运行方式
sh filename.sh
当你使用直接运行的方法来处理时,系统会给予一支新的 bash 让我们来运行脚本里面的命令,因此你firstname, lastname 等变量其实是在下图中的子程序 bash 内运行的。 当脚本运行完毕后,子程序 bash 内的所有数据便被移除,因此上表的练习中,在父程序底下 echo $firstname 时, 就看不到任何东西了。
source filename.sh