命令连接符
;表示不管前面是否执行成功都要执行
&&表示前面执行成功才执行后面
||表示前面执行失败才执行后面
read命令
read [选项] 值
read -p(提示语句) -n(字符个数) -t(时间秒) -s(不显示)
运算符
expr 3 + 2
结果赋值
sum=`expr 3 + 2` 或者 sum=$((3 + 2))
乘法
expr 3 \* 2 #需要转义,*代表任意字符
expr `expr 3 + 2` \* 5 ==> (3 + 2)* 5
sum=`expr \`expr 3 + 2\` \* 5` 或者 sum=$(((3 + 2) * 5))
$()和${}的区别
$()的用途和``一样,迎来表示优先执行的命令
${}就是去变量
$(())适用于数值运算
条件判断
内置test命令
内置test命令常用操作符号[]表示,将表达式写在[]中
[ expression ] #expression前后各有空格
或者 test expression
测试范围:整数、字符串、文件
字符串测试
test str1 == str2
test str1 != str2
test str 测试字符串是否不为空 test $num5;echo $?
test -n str1 测试字符不为空 需要给str1 加双引号
test -z str1 测试字符串为空
字符串测试可以加逻辑符号
test -z str1 && echo invlid || echo ok
整数测试
test int1 -eq int2 --> ==
test int1 gt int2 --> >
test int1 lt int2 --> <
test int1 ge int2 --> >=
test int1 le int2 --> <=
test int1 ne int2 --> !=
文件测试
test -d file 指定文件是否目录
test -e file 文件是否存在
test -f file 指定文件是否常规文件
test -L file 文件存在并且是一个符号链接
test -r file 指定文件是否可读
test -w file 指定文件是否可写
test -x file 制定文件是否可执行
多重条件测试
条件1 -a 条件2 逻辑与 两个都成立,则为真
条件1 -o 条件2 逻辑或
!条件 逻辑非 取反