shell中的条件判断

bash中的条件判断:if语句

if语法: if 判断条件 0为真 其他都为假

单分支if语句:

	if 判断条件; then
	  statement1
	  statement2
	  ...
	fi

双分支的if语句:

	if 判断条件; then
		statement1
		statement2
		...
	else
		statement3
		statement4
		...
	fi

多分支的if语句:

	if 判断条件1; then
	  statement1
	  ...
	elif 判断条件2; then
	  statement2
	  ...
	elif 判断条件3; then
	  statement3
	  ...
	else
	  statement4
	  ...
	fi

条件测试类型

1、条件测试表达式

[ expression ] 括号两端必须要有空格

[[ expression ]] 括号两端必须要有空格

test expression

组合测试条件:
		-a:and
		-o:or
		!:取非

2、整数比较

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

命令间的逻辑关系

逻辑与:&&
  第一个条件为假 第二个条件不用在判断
  第一个条件为真,第二个条件必须得判断

逻辑或:||
  
3、字符串比较

== 等于 两边要有空格
!= 不等
> 大于
< 小于

4、文件测试

  -z string 测试指定字符是否为空,空着真,非空为假
  -n string 测试指定字符串是否为不空,空为假 非空为真
  -e FILE 测试文件是否存在
  -f file 测试文件是否为普通文件
  -d file 测试指定路径是否为目录
  -r file 测试文件对当前用户是否可读
  -w file 测试文件对当前用户是否可写
  -x file 测试文件对当前用户是都可执行
  -z 是否为空 为空则为真
  -a 是否不空

练习

判断当前系统上是否有用户的默认shell为bash;
如果有,就显示有多少个这类用户;否则,就显示没有这类用户;

#!/bin/bash
grep "bash$" /etc/passwd &> /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
	echo "grep "bash$" /etc/passwd | wc -l"
else
	echo "no such user"
fi
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值