(三)shell脚本之if语句控制

if 判断
在shell中if条件判断语句和我们的C、python等语言不同,shell的if语句条件必须用[ ]括起来,另外[ ]里外都需要用空格与周围隔开(例如[ a == b ]),否则会报错
if基本语法
if [ 表达式 ];then ;fi

if command;then ;fi
其中[ 表达式 ] 等同于test命令,man test

条件测试类型
1.整数测试

-eq 测试两个整数是否相等
-ne 测试两个整数是否不等
-gt 测试一个数是否大于另一个数
-lt 测试一个数是否小于另一个数
-ge 大于或等于
-le 小于或等于

2.字符串测试(字符串两边要有空格)

  == 等于  
  != 不等
  >  大于
  <  小于
  -z string 测试指定字符是否为空,空着真,非空为假
 -n string 测试指定字符串是否为不空,空为假 非空为真    

3.文件测试

 -e FILE 测试文件是否存在
 -f file 测试文件是否为普通文件
 -d file 测试指定路径是否为目录
 -r file 测试文件对当前用户是否可读
 -w file 测试文件对当前用户是否可写
 -x file 测试文件对当前用户是都可执行

4.组合测试

-a: and
-o: or
!: 非

5.&&运算符

command1  && command2

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;命令之间使用 && 连接,实现逻辑与的功能。

如:

test -f /var/log/messages && echo ok

6.||运算符

command1 || command2

||则与&&相反。如果||左边的命令未执行成功,那么||右边的命令就会执行
如 test -f 123 || echo error


if练习:
1.判断当前用户是否是root,不是的话退出,如果是的话显示一下root的登录shell

id=`id -u`
if [ $id -eq 0 ]
then
grep "^root" /etc/passwd|cut -d: -f7
else
exit
fi

2.命令行输入任意三个整数,判断最大的数

MAX=$1
if [ $2 -ge $1 ]; then
    MAX=$2
fi
if [ $3 -ge $MAX ]; then
         MAX=$3
fi
echo "the max number is $MAX."

3.用Shell脚本,判断/bin/nohup是不是可执行文件,如果是将其拷贝到/tmpdir目录下,判断如果/tmpdir目录不存在,自动创建。

if [ -x /bin/nohup ]
    then 
    if [ ! -d /tmpdir ]
        then    
            mkdir /tmpdir
    fi
    cp /bin/nohup /tmpdir
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值