2-Shell判断语句基础知识

Shell判断基础

判断语句的写法

  • [[ 表达式 ]]

  • [ 表达式 ]

  • test 表达式

    1. 使用规范:

      • 表达式两边有空格
      • 表达式内部运算符两边有空格
    2. [[]]、[]、test区别:

      • [[]]:能使用><进行排序操作,而且支持使用&&||,可以使用正则表达式

      • []或者test:表达式中不能使用&&||

      [[]]功能更强大

执行多条语句

  • 分号;

    按顺序执行,都会执行,整个命令的退出码以最后一条命令为准

  • &&

    仅当前一条命令执行成功后执行,整个命令的退出码取决于是否都执行成功

  • ||

    仅当前一条命令执行失败或不执行时执行,整个命令的退出码取决于是否有执行成功


字符串的判断

符号含义
=等于
==等于
!=不等于
<小于
>大于
-z判断字符是否为null ,即长度是否为空
-n判断字符是否不为null
test a == a;echo $?    			#0
[ $USER == noUser ];echo $?		#1
[[ $USER == noUser ]];echo $?	#1
[[ $USER == root ]] && echo Y || echo N				#root用户:Y;非root用户:N
[[ -z $noValue ]] && echo Y || echo N				#为空输出:Y;非空输出:N
[[ yes == yes && no == no ]] && echo Y || echo N
[[ b > A ]] && echo Y || echo N						#ASCII码比较

-z:判断一个字符串时候为空

整数的判断

符号含义
-eq等于(equal)
-ne不等于(not equal)
-gt大于(greater than)
-ge大于等于(greater or equal)
-lt小于(less than)
-le小于等于(less or equal)
test 4 -eq 4 && echo Y || echo N			#Y
[ 6 -gt 4 ] && echo Y || echo N				#Y
[ 6 -le 3 ] && echo Y || echo N				#N
procs_num=$(ps aux | wc -l)
[ $procs_num -gt 100 ] && echo Y || echo N	#Y

文件属性判断

操作符功能描述
-e file文件是否存在,存在返回真,不存在返回否
-s file文件是否存在且非空
-f file是否普通文件
-d file是否为目录
-r file当前用户是否具有可读权限
-w file当前用户是否具有可写权限
-x file当前用户是否具有可执行权限
file1 -nt file2file1比file2更新时返回真
file1 -ot file2file1比file2更旧时返回真
touch v1.txt
touch v2.txt
mkdir test
[ ! -e v1.txt ] && echo|| echo#错
[ -f test/ ] && echo|| echo#错
[ -r v1.txt ] && echo Y || echo N			 	#Y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值