6.1.1、bash弱类型无需事先声明,可直接使用,值默认都是字符型、算术运算:bash会对数字执行隐式类型转换(let var_name=integer_value)举例:let i=$1+$2。$[]$(()):可以直接引用当前值,而let必须赋值给变量后才能读取、增强型赋值:+=、-=、*=、/=、%=,自增++、自减--
6.1.2、操作符(+、-、*、/、%、**)这些称之为双目运算符
6.2.1、逻辑运算符:布尔运算:真、假, (非、与、或、异域)与运算(&&、||)、比较运算(<,>,<=,>=,==,!=)、条件测试test:举例:test $1 > $2 ,也可以用[]或[[]]
6.2.2、测试类型:整型测试:整数比较(-gt(>)、-lt(<)、-ge(>=)、-le(<=)、-eq(==)、-nq(!=))、字符测试:字符串比较(<、>、=~(模式匹配)、==、!=、还包括2个单目运算符(-n 检查内容是否为空,不空为真,空为假、-z 和-n相反空为真,不空假))、文件测试(判断文件的存在性及属性)
6.2.3、if有3种格式:1、单分支语句 ,2、双分支语句,3、多分支语句
1、 if 测试条件;then 2、if 测试条件;then 3、if 测试条件1;then
选择分支 选择分支1 选择分支1
fi else elif 条件2
选择分支2 分支2
fi else
分支3
fi
6.2.4、自定义shell进程状态返回值:exit [n];如果把命令成功与否当做条件,if语句只能跟命令本身不能引用例如:if grep "^$" /etc/inittab;then
6.3.1、组合条件测试(与(-a)&&、或(-o)||、非(-not)!、当需要判定2个等值表达式时需要(-a、-o、-not),如果一个为命令成功与否用来判断则可以用&&、||、!举例 if id "$1" && [ "$2" == "string" ])
6.4.1、文件测试(-e:存在为真,举例: if [ -e "$1" ];then)(-f:存在并且为普通文件,)(-d:存在并且为目录、-l或-L:存在并为链接文件、-s:存在并且为非空文件、-b:块设备、-c:字符设备、-S:套接字文件、-p:命名管道、-r、-w、-x:存在并且可读、可写、可执行、双目运算 -nt:file1的mtime(修改时间)新于file2为真,举例:if [ file1 -nt file2 ];then)
6.4.2、bash交互式编程,read等待用户输入信息多值用空格分隔(-p 可以输入提示信息、-t设定超时时间:例如read -p "string" -t 5 num1)