SHELL(02)

SHELL(01)

条件测试

  • 为命令的执行提供最直接的识别依据
    • 文件或目录的读/写等状态
    • 数值的大小
    • 字符串是否匹配
    • 多条件组合
基本用法

[ test 表达式 ] 或 [ 表达式 ]

注意需要空格

条件测试操作本身不显示出任何信息. 需要查看变量 [ $? ] 的值作出判断

字符串测试
[ a == b ]
  • 比较两个字符串是否相同

    [ $USER == “root” ] / test $USER == “root”

    [ echo $? ]

[ a != b ]
  • 比较两个字符串是否不同

    [ $USER != “root” ]

    [ echo $? ]

[ -z $a ] / [ ! -z $a ]
  • 如果变量为空 , 有可能报错 , 加双引号可以避免

  • 判断变量是否为空

    [ -z $USER ]

    [ echo $? ]

  • 判断变量是否非空

    [ ! -z $USER ] / [ -n $USER ]

    [ echo $? ]

[ && ] , [ || ] , [ ; ]
  • 一行执行多条命令的情况

    A && B #仅A命令执行成功后 , 才执行B命令

    A || B #仅当A命令失败后 , 才执行B命令

    A ; B #执行完A后执行B , 两者无关联 , 仅先后关系

&& , || 逻辑组合
  • &&,逻辑与

    • 都成立则true
  • ||,逻辑或

    • 有一个成立则true
数值比较

[ 数值1 操作符 数值2 ]

[ -eq ] ----- 等于( Equal )

[ -ne ] ----- 不等于( Not Equal )

[ -ge ] ----- 大于等于( Greater Equal )

[ -le ] ----- 小于等于( Lesser Equal )

[ -gt ] ----- 大于( Greater Than )

[ -lt ] ----- 小于( Lesser Than )

识别文件/目录的状态

[ -e ] ----- 判断对象是否存在 ----- [ -e “/opt/a” && echo “yes” || echo “no” ]

[ -d ] ----- 判断对象是否存在且是目录 ----- [ -d “/opt/b” ]

[ -f ] ----- 判断对象是否存在且是文件 ----- [ -f “/opt/c” ]

[ -r ] ----- 判断对象是否可读 ----- [ -r “/opt/a” ]

[ -w ] ----- 判断对象是否可写 ----- [ -w “/opt/a” ]

[ -x ] ----- 判断对象是否有执行权限 ----- [ -x “/opt/a” ]

If选择结构

if 条件测试 ;

then 命令序列 1

elif 条件测试 ;

then 命令序列 2

else

命令序列 3

fi

循环结构

[ for ] 循环

for 变量名 in 值1 值2 值3

do
命令序列
done

[root@svr5 ~]# vim for01.sh

#!/bin/bash
for i in 1 2 3 4 5
do
        echo "hello world"
done

[root@svr5 ~]# vim for02.sh

#!/bin/bash
for i in {1..10}
do
        echo "abc"
done
a=10
for  i  in  $(seq $a)            #如果循环次数是通过变量决定可以用seq指令
do
    echo "$i"
done
#!/bin/bash
for i in $(cat  /opt/name.txt) 
do
useradd  $i
done
[ while ] 循环

while循环属于条件式的执行流程,会反复判断指定的测试条件,只要条件成立即执行固定的一组操作,直到条件变化为不成立为止。所以while循环的条件一般通过变量来进行控制,在循环体内对变量值做相应改变,以便在适当的时候退出,避免陷入死循环.

#根据条件的结果决定是否要执行任务,条件测试成功的话就执行,如果失败立刻结束循环

while  条件测试  
do
    命令序列
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值