shell(学习笔记二)

条件测试

test 选项 参数test [选项 参数]
help test 查阅帮助

字符串比较

  1. 判断字符串是否为空 [ -z str ]
  2. 判断字符串是否相等 [ str1 == str2 ]
  3. 判断字符串是否不等 [ str1 != str2 ]

方括号[]和内容之间必须有空格, == 和 != 左右两边也需要有空格

示例:

[ -z "$T"]
echo $?  #查看上一条命令执行的结果
[ "$USER" == root ]
echo $?

使用test命令

num1="ru1noob"
num2="runoob"
if test $num1 = $num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi
= 	等于则为真
!= 	不相等则为真
-z 字符串 	字符串的长度为零则为真
-n 字符串 	字符串的长度不为零则为真

数值比较

[ 整数值1 操作符 整数值2 ]

操作符含义
-eq等于 equal
-ne不等于 not equal
-ge大于或等于 greater or equal
-le小于或等于 less or equal
-gt大于 greater than
-lt小于 less than

示例:

[ $(who | wc -l) -ge 2 ]  #判断计算机当前登录的用户数量是否大于2
echo $?

数值比较使用test命令

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi

文件状态测试

[操作符 文件或目录]

-e :判断对象是否存在(exist)
-d :判断对象是否是目录(directory)
-f :判断对象是否为一般文件(file)
-r :判断对象是否有可读权限
-w :判断对象是否有可写权限
-x :判断对象是否有可执行权限

示例:

bash[ -e /etc/ ]
echo $?

文件测试使用test命令

if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi
参数补充(接上):
-s 文件名 :如果文件存在且至少有一个字符则为真
-c 文件名 :如果文件存在且为字符型特殊文件则为真
-b 文件名 :如果文件存在且为块特殊文件则为真

Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。例如:

if test -e ./notFile -o -e ./bash
then
    echo '至少有一个文件存在!'
else
    echo '两个文件都不存在'
fi

控制操作符

使用控制符组合多条命令
; && ||

  • 命令 ; 命令 按顺序执行,命令之间没有关系
  • 命令 && 命令 命令之间有逻辑关系,当前一条命令执行成功,后一条命令才会执行
  • 命令 || 命令 前一条命令执行成功,后一条命令不再执行;反之,前一条命令执行失败,则执行后一条命令

示例:

cd /etc/ ; ls  #若cd的路径不存在,第一个命令会报错,ls依旧会执行,执行结果列出当前目录下文件
[ a == a ] && ls  #仅当前一条执行成功才会执行ls
[ a == b ] || echo message  #前一命令执行失败则执行echo

[ a == a ] && echo Y || echo N 

学习来源:【2021版】Shell脚本从入门到精通以及菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值