**重点内容**linux数字运算及运算符
expr数值运算工具
aa=11
bb=22
c=$(expr $aa + $bb) 注意 + 号的两侧必须要有空格
expr 表达式求职
- expr 1 + 3
- expr 1 * 3 使用 * 加转义符
- echo ` expr 1 + 3 `
表达式 数字和运算符都要有空格 出现在空格要加反引号
计算 $(( $aa +
bb))$[$aa+
b
b
)
)
$
[
$
a
a
+
bb ] [ ] 两边都要有空格
test条件判断命令
如果是真 返回 0 假返回 1
整数比较
- -lt 小于
- -le小于等于
- -gt 大于
- -ge大于等于
- -eq 等于
- -ne 不等于
test 语句可以等价于 [ ] 注意表达式于中括号间有空格
文件测试
- -f 存在是普通目录
- -d 存在是目录
- -s 存在且字节数大于0
- -r 存在可读
- -w存在可写
- -x存在可以执行
-
字符串测试
test s 字符串 s 非空
test s1= s2 字符串s1等于s2
test s1 != s2 字符串s1不等于s2
test -n 字符串长>0
其他的参数
-a 逻辑与
-o 逻辑或
!逻辑非
产生一个数字序列
seq 1 4
流程控制
if分支
语法格式
if [ 判断条件]
then
elif[判断条件]
then
fi
case
case “$#” in
0) 语句 ;; 注意最后是两个分号结束
1) ‘;;
ecac
读取变量
read -p ” 提示说明 “ num
shell函数
函数定义
函数名 (){ } function 函数名 (){ }
所有的函数使用之前都要提前定义。
数组
数组的定义
arr=(1 2 3 4 5 6).
数组下标方式
arr[0]=”1”
arr[1]=”2”
获取数组的值
echo ${arr[1]} 输出的是 1
打印数组的长度 ${#arr[*]} 或者${#arr[@]}
关联数组
定义
declare -A 数组名
例如
name=(jim tom lucy)
daclare -A phone
phone=([jim]=135 [tom] = 136 [lucy]=137)
echo ${name[1]} 输出是 tom
echo \${phone[“\${name[1]}”]}输出是135