- 整数测试:
- [ $A -eq $B ] :$A $B 的前后都有空格。等值为真
- [ $A -ne $B ] :$A $B 的前后都有空格。不等值为真
- [ $A -gt $B ] : >
- [ $A -lt $B ] : <
- [ $A -ge $B ] : >=
- [ $A -le $B ] : <=
- 文件测试:
- [ -e file ]:测试文件是否存在
- [ -f file ]:是否普通文件
- [ -d file ]:是否设备文件
- [ -r file ]:是否对当前用户可读
- [ -w file ]:可写
- [ -x file ]:可执行
- 字符串测试:
- [ $A == $B ]:
- [ $A != $B ]:
- 命令间的逻辑关系:有命令A 与B ,当命令顺利执行;返回值为真,否则反之.
- 当 A 为真时 && 执行B
- 当A为假,命令终止。
- 当 A 为假时 || 执行B
- 当A为真是,命令终止。
- A && B || C : 如果A顺利执行,那么接下来执行B,否则执行C。
- 如果A顺利执行,那么执行B,如果B顺利执行则命令终止。
- 如果A顺利执行,那么执行B,如果B执行报错则执行C。
- 如果A执行报错,跳过B,执行C。
- Shell中进行算术运算:注意$a+$b=a+b 是字符。
- let c=$a +$b
- c=$[$a+$b]
- c=$(($a+$b))
- c=`expr $a + $b`
- 选择结构
- 条件选择结构
- case SWITCH in
- value 1)
- statement...
- ;;
- value 2)
- statement...
- ;;
- *)
- statement ...
- ;;
- esac
- 例子:
- case $1 in
- [0-9])
- echo "A digit";;
- [a-z])
- echo "lower";;
- [A-Z])
- echo "upper";;
- *)
- echo "special";;
- esac
- 条件判断控制结构
- if condition1; then
- statement ...
- elseif conditon2; then
- statement ...
- elseif ...
- else
- statement ...
- fi
- 例:特点:可以跟多参数,无文件创建文件,有则统计程序运行该文件次数。
- 1 #! /bin/bash
- 2 #
- 3 declare -i line=0
- 4 while [ "$1" != "" ]; do
- 5 if [ -e $1 ]; then
- 6 echo "I m $1,and I am alive"
- 7 line=`wc -l $1| cut -d" " -f1`
- 8 let line=$[ $line + 1 ]
- 9 echo "$line">>$1
- 10 echo "I am $1,and I am visited $line times"
- 11 else
- 12 touch $1
- 13 echo "fiel $1 created"
- 14 fi
- 15 shift
- 16 done
- 17 exit 0
- 循环:
- for 循环
- for 变量 in 循环;do
- 循环体
- done
- while循环
- while 条件;do
- 循环体
- done
Shell basic2
条件判断