执行结果:
[root@iz2ze0ajic0vbv28hcdctpz ~]# ./string.sh
apple = pen: apple 不等于 pen
apple != pen : apple 不等于 pen
-z apple : 字符串长度不为 0
-n apple : 字符串长度不为 0
apple : 字符串不为空
逻辑运算符

编写脚本:
#!/bin/bash num1=5 num2=8 if [[ $num1 -lt 10 && $num2 -gt 5 ]] then echo "返回 true" else echo "返回 false" fi if [[ $num1 -lt 10 || $num2 -gt 5 ]] then echo "返回 true" else echo "返回 false" fi
执行结果:
[root@iz2ze0ajic0vbv28hcdctpz ~]# ./logic.sh
返回 true
返回 true
文件测试运算符

编写脚本:
~ cat testfile.sh #!/bin/bash file="/root/testfile.sh" if [ -r $file ] then echo "该文件可读" else echo "该文件不可读" fi if [ -x $file ] then echo "该文件可执行" else echo "该文件不可执行" fi if [ -w $file ] then echo "该文件可写" else echo "该文件不可写" fi if [ -f $file ] then echo "该文件是普通文件" else echo "该文件是非普通文件" fi if [ -s $file ] then echo "该文件为空" else echo "该文件不为空" fi if [ -d $file ] then echo "该文件是目录" else echo "该文件不是目录" fi
执行脚本:
➜ ~ ./testfile.sh
该文件可读
该文件可执行
该文件可写
该文件是普通文件
该文件为空
该文件不是目录
shell条件判断&流程控制
其实流程控制的本质是差不多的,只是在语法上稍微有些差别,本节我们来盘一盘。
单分支if
流程示意图:

举例:
➜ if cat if-one.sh #!/bin/bash a=10 if [ a > 5 ] then echo "a 大于 5" fi
执行结果:
➜ if ./if-one.sh
a 大于 5
双分支if
流程示意图:

举例:
➜ if cat if-double.sh #!/bin/bash age=18 if [ $age -ge 18 ]; then echo "成年" else echo "未成年" fi
执行结果:
➜ if ./if-double.sh
成年
多分支if语句
流程示意图:

举例:
➜ if cat if-multi.sh #!/bin/bash money=10 if [ $money -lt 1 ] then echo "1块钱都没有的比皮卡丘决定在家吃土" elif [ $money -ge 1 -a $money -lt 5 ] then echo "老板我要大白兔奶糖" elif [ $money -ge 5 -a $money -le 10 ] then echo "老板我要巧克力" else echo "老板给我拿个鸡腿" fi










