shell编程之条件语句(文件测试,整数测试,字符串测试与逻辑测试(使用[ ])+if语句详解)

本文详细介绍了Shell编程中的条件测试,包括文件测试、整数测试和字符串与逻辑测试,深入讲解了test命令及各种运算符的用法。此外,还详细解析了if语句的不同分支,如单分支、双分支和多分支,帮助读者掌握更复杂的流程控制。
摘要由CSDN通过智能技术生成

前言

  • 在简单的shell脚本程序中,各条语句将按先后顺序依次执行,从而实现批处理的自动化过程。
  • 但是,单一的顺序结构使得脚本过于机械化,不够“智能”,难以处理更加领过的系统任务。

一:条件测试

1.1:文件测试

1.1.1:test命令
  • test命令:测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值

  • 命令基本格式
    格式一:test 条件表达式
    格式二:[ 条件表达式 ]		'两端要有空格,此法更为常用'
    
1.1.2:文件测试
  • 文件测试基本格式
    [ 操作符 文件或目录 ]  '注意两端空格'
    
    &?  返回0表示条件成立,返回非零值表示条件不成立
    &&  逻辑与,"而且"的意思
    ||  逻辑或,"或者"的意思
    
    • 常见的测试操作符 解释
      -d 测试是否为目录(directory)
      -e 测试目录或文件是否存在(Exist)
      -f 测试是否为文件(File)
      -r 测试当前用户是否有权限读取(Read)
      -w 测试当前用户是否有权限写入(Write)
      -x 测试当前用户是否有权限执行(eXcute)
    [root@localhost opt]# cd aaa
    [root@localhost aaa]# ls
    [root@localhost aaa]# mkdir ccc
    [root@localhost aaa]# ls
    ccc
    [root@localhost aaa]# test -d ccc
    [root@localhost aaa]# echo $?
    0
    [root@localhost aaa]# test -f ccc
    [root@localhost aaa]# echo $?
    1
    [root@localhost aaa]# touch bbb.txt
    [root@localhost aaa]# ls
    bbb.txt  ccc
    [root@localhost aaa]# test -f bbb.txt 
    [root@localhost aaa]# echo $?
    0
    [root@localhost aaa]# [ -d ccc ]
    [root@localhost aaa]# echo $?
    0
    [root@localhost aaa]# [ -x ccc ]
    [root@localhost aaa]# echo $?
    0
    [root@localhost aaa]# ls -l
    total 0
    -rw-r--r--. 1 root root 0 Nov 26 15:18 bbb.txt
    drwxr-xr-x. 2 root root 6 Nov 26 15:17 ccc
    [root@localhost aaa]# useradd lisi
    [root@localhost ~]# echo "123123" | passwd --stdin lisi
    更改用户 lisi 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@localhost ~]# su - lisi
    最后一次失败的登录:二 11月 26 15:28:39 CST 2019pts/0 上
    最有一次成功登录后有 1 次失败的登录尝试。
    [lisi@localhost aaa]$ [ -w ccc ]
    [lisi@localhost aaa]$ echo $?
    1
    [lisi@localhost aaa]$ [ -r ccc 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值