Shell脚本语法
1 数值运算符 exper 在用exper时 等号两端不能有空格,有括号先算括号里面的
2 shell中的判断式及控制流程语句
条件判断命令test n –参数 n 真返回0 假 返回1
整数测试参数 -lt 小于
-le 小于等于
-gt 大于
-ge 大于等于
-eq 等于
-ne 不等于
注意 test语句 可以[](中括号)的形式代替 但是中括号中间必须有空格间隔
文件测试 test -f 存在且存在的是普通文件
-d 存在且是目录
-s 存在且字数大于0
-r 存在且可读
-w 存在且可写
-x 存在且可以执行
3 控制流程
① If分支
If 【条件判断式】; then 程序 fi /// if【条件判断式】 ;then 程序 fi
注意: if 语句使用fi结尾 条件判断式就是使用test命令进行判断 then后面跟符合条件之后执行的程序
② case case $变量名 in “值1”)如果变量的值等于值1,执行;;
“值2”)如果变量的值等于值2,执行;;
*)如果变量的值都不是以上的值,执行;;
注意 每个分支条件后面必须有连个分节号结尾
③ for 循环 for 变量 in 值1 值2 值3 ...
do
程序执行
done
注意 在程序中若有乘号 乘号之前要加转义符\ 并且在数字之间要加空格
④ read 变量 可以从键盘上读取多个变量的值 用户数如数据时 用空格或者tab键作为分隔
如果输入的数据不够个数不够,则从左到右对应赋值,没有输入的变量为空
如果输入的数据个数超了则从左到有对应赋值,最后一个变量被赋予剩余的所有数据
Read –p 指定读取
⑤ while循环 while 【条件判断式】 do 程序 done
5 shell中的函数
定义函数的格式为:函数名(){命令1. ..}
函数名(){命令1. . .}
所有函数在使用前必须定义 #!/bin/bash
例子 函数fname的定义
fname()
{
echo $1,$2; #访问参数1和参数2
echo"$@"; #以列表的方式一次性打印所有参数
echo"$*"; #类似于$@,但是参数被作为单个实体
return 0; #返回值
}
6 shell数组: 数组是脚本非常重要的组成部分,他借助索引将多的独立数据存储为一个集合。
例子
打印出特定索引的数组元素内容:
echo${array_var[0]}
test1
以清单形式打印出数组中的所有值:
echo${array_var[*]}
test1 test2 test3test4 test5
打印数组长度:
echo${#array_var[*]}
5
语法描述
${!array[*]} 取关联数组所有键
${!array[@]} 取关联数组所有键
${array[*]} 取关联数组所有值
${array[@]} 取关联数组所有值
${#array[*]} 关联数组的长度
${#array[@]} 关联数组的长度