第五讲 条件测试操作、字符串比较、逻辑测试

1 测试操作
test 条件表达式  或者 [ 条件表达式 ] (注意方括号与条件表达式之间有空

格)如果条件为真,则返回0,否则返回其他值
实例:test -d /etc/passwd  
          [ -d /etc/passwd ]

echo $? 屏显上一个命令的结果
1.1测试文件状态
   [ 操作符 文件或目录]

常用操作符
-d  测试是否为目录(directory)
-e  测试目录或文件是否存在(exist)
-f  测试是否为文件(file)
-r  测试当前用户是否有权限读取(read)
-w 测试当前用户是否有权限写入(write)
-x 测试当前用户是否可以执行(excute)该文件
-l 测试是否为符链接(link)文件

[ -x /home/happy/Documents/bak.sh ] && echo "yes"
如果前面条件为真,即测试的返回结果为0,则会执行后面的语句,屏显"yes"
如果不为真,返回结果不为0,则不会执行后面的语句。


1.2 整数值的比较
格式  [ 整数1 操作符 整数2 ]
实例   [ `who|wc -l` -eq 2 ] && echo "yes"      
反撇号`` 里面是可执行的命令,比较的是执行得到的结果。

常用的测试操作符
-eq 等于equal
-ne  不等于not equal
-gt  大于 greater than
-lt  小于 lesser than
-le  小于等于 lesser or equal
-ge  大于或等于 greater or equal

who 命令  显示目前登入系统的用户信息

wc命令  Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息

命令实例 wc bak.sh  输出 2 2 20 bak.sh  行数  单词数 字节数 文件名  

命令实例  who | wc -l 意思就是执行who以后,针对输出在执行wc -l  统计行数 。 "|"就是所谓的“管道线”。
 
命令  cat 1.txt|wc -l  可以统计文件1.txt的行数,且只输出行数不输出文件名。
命令  ls -l | wc -l 统计当前目录下的文件数 。因为ls -l 会显示所有文件的详细信息,一行一个文件。

1.3 字符串的比较
[ 字符串1 = 字符串2 ]    等于     
[ 字符串1 != 字符串2 ]   不等于     [ "happy" != "happy" ]
[ -z 字符串2 ]   字符串内容为空  [ -z `cat 1.txt` ] && echo "yes"   可以看1.txt文件是否为空

1.4 逻辑测试
格式 [表达式1] 操作符 [表达式2]
常用测试操作符
-a 或 && ,与
-o 或||,或
! ,否
 
实例  [ -z `cat 1.txt` ] || [ "ab" = "abc" ] && echo "y"  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值