shell相关
流程控制
一、if
#单if判断 if [ 条件判断 ];then command fi #if……else……多重判断 if [ 条件判断 ];then command1 elif [ 条件判断 ];then command2 else command3 fi
二、for
for i in item1 item2 item3 ... itemn do command done for ((赋值;条件判断;下一步)) do command done
三、while
while [ 条件判断 ] do command done
四、until
while是在条件为true的时候循环、false时停止,until与while相反,until是条件为false时循环、true时停止。
xuntil [ 条件判断 ] do command done
break和continue都可以跳出循环,break是跳出所有循环、未循环的不在执行,continue是跳出当前循环、执行下一次循环。
五、case...esac...
多选择语句,
case 值 in 模式1) command1;; 模式2) command2;; *) command3;; esac
运算符
一、算数运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现例如awk和expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作,例如两个数相加var=`expr 2 + 2`
使用expr的有2点要注意:表达式和运算符之间要有空格,不能写成2+2;完整的表达式在` `之间,是反引号不是单引号。
a=10;b=2 v1=`expr $a + $b` v2=`expr $a - $b` v3=`expr $a \* $b` #*是特殊字符,因此要加转义子 v4=`expr $a / $b` v5=`expr $a % $b` echo 'a=10,b=2' echo "a+b=$v1,a-b=$v2,a*b=$v3,a/b=$v4,a%b=$v5" if [ $a == $b ];then echo 'a等于b' fi if [ $a != $b ];then echo 'a不等于b' fi #脚本运行结果 #a=10,b=2 #a+b=12,a-b=8,a*b=20,a/b=5,a%b=0 #a不等于b
二、关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。假定变量 a 为 10,变量 b 为 20,常用的关系运算符如下。
三、布尔运算符
即与、或、非运算,假设变量 a 为 10,变量 b 为 20,布尔运算示例如下。
四、字符串运算符
假定变量 a 为 "abc",变量 b 为 "efg",如下是常用的字符串运算符。
注意使用-n时,"$a"要用引号括起来。
五、文件测试运算符
文件类型即ls -l的第一列的第一个字段,如-rw-r--r--就表示普通文件。
变量i自增
let i+=1或let i++
3. ((i++))
4. i=$[$i+1]