10.10
数组声明
- declare:声明变量
-i
:整型-r
:只读-a
:数组-A
:声明关联数组
关联数组
-
是无序的,使用键(名)作为下标,可以是字符串。
-
示例:
declare -A arr1=() arr1=([法师]=火舞歌灵 [战士]=赵云)
可以有 "" 也可以没有。
-
另一个示例:
arr2=(["wo"]="yang" ["cike"]="西门飞雪" ["ADC"]="火神战姬")
获取关联数组的值
-
获取特定值:
echo ${arrname[wo]}
-
获取所有值:
echo ${arrname[*]} echo ${arrname[@]}
-
获取所有键:
echo ${!arrname[*]} echo ${!arrname[@]}
-
获取数组长度:
echo ${#arrname[*]} echo ${#arrname[@]}
关联数组的作用
- 获取同一目录下的所有文件的完整路径
- 传入某个脚本文件中的参数
- 数据的整理和特定算法的计算
运算符
-
使用
expr
进行数字计算:expr 数字1 符号 数字2 # + - * /
-
转义字符乘号:
expr 3 \* 5
-
除法:
expr 15 / 5
-
使用算术扩展:
echo $[(3+5)*2] expr \(3+5\)\*2
条件判断
-
使用
test
测试条件:test $a1 = $b1 echo $?
-
使用
[ ]
命令:[ 条件 ]
数字比较特殊符号
-gt
:大于-lt
:小于-eq
:等于-ne
:不等于-ge
:大于等于-le
:小于等于
字符比较
- 使用
=
比较字符串:[ $a = $b ]
使用 (( ))
(( a >= b && b <= 5 ))
权限判断
- 使用
[ -操作权限 文件路径 ]
判断权限:-r
:可读-w
:可写-x
:可执行
- 示例:
[ -r newfile ] [ -w newfile ] [ -x newfile ]
权限分为
u
:用户g
:组o
:其他
每组权限中分为三种操作权限:r
(读),w
(写),x
(执行)。
文件类型判断
-e
:文件存在-f
:存在且是常规文件-d
:存在且是目录文件
示例
-
判断
hello.sh
是否存在:[ -e /home/centos/scripts/hello.sh ]
echo $?
-
判断
hello.sh
是否存在且是一个文件:[ -f /home/centos/scripts/hello.sh ]
echo $?
-
判断
hello.sh
是否存在且是一个目录:[ -d /home/centos/scripts/hello.sh ]
echo $?