0. 分号=换行
1. 变量赋值不可以有空格
2. 变量赋值不加$, 使用变量的时候才加$
3. 字符串
变量:一般用双引号
str=“aaa”;
获取字符串长度:# (数组也是
len=${#str};
提取子串, 从第二个位置开始 取2个字符
s=${str:1:2};
4. 数组
变量用()表示,并用空格分开
arr=(1 2 3);
获取数组的所有元素:@或者*
echo ${arr[@]}
获取数组长度
len=${#arr[@]}; // 注意要加[@],否则#arr会输出1
5. 运算
算术表达式 + - * / %
val=`expr $a + $b` // *需要写成 \*,多写一个转义符
赋值
val=$a
条件表达式 == !=
if [ $a == $b ] // 空格一个都不能少
关系运算符 -eq相等 -ne不等 -gt大于 -lt小于 -ge大于等于 -le小于等于
if [ $a -lt $b ]
布尔运算符 !非 -o或 -a与
if [ $a -lt 100 -a $b -gt 15 ]
逻辑运算符 && ||
if [[ $a -lt 100 && $b -gt 100 ]] // 注意和上一条区别
字符串运算 =相等 !=不等 -z长度为0 -n长度不为0 $为空
if [ $str ]
6. 其他运算符
let 赋值并运算,支持++/--
let a++; let a+=2
expr 运算
expr 1 \* 2 // 运算符两边需要有空格,并且乘号和括号要加转义
bc 支持浮点运算和平方
echo "10^10" |bc; echo "1.2 < 2" |bc