Shell 脚本学习笔记(二)—— Shell 基本运算符


注意

  • 运算符两端一定要有空格
  • 表达式要使用 ` 反引号 包着

val=expr 8 + 8
echo “两数之和为 : $val”

1. 算术运算符

  • 加法
val=`expr 3 + 4`
echo "两数之和为 : $val"

两数之和为 : 7
  • 减法
val=`expr 4 - 3`
echo "两数之差为 : $val"

两数之差为 : 1
  • 乘法
val=`expr 3 \* 4`
echo "两数乘积为 : $val"

两数乘积为 : 12
  • 除法
val=`expr 4 / 3`
echo "两数相除为 : $val"

两数相除为 : 1
  • 取余
val=`expr 4 % 3`
echo "两数取余为 : $val"

两数取余为 : 1
  • 赋值
val1=hello
val2=$val1
echo $val2
  • 相等
    注意注意,方括号两侧一定要有空格一定要有空格
val1=8
val2=8
if [ $val1 == $val2 ]
then
	echo "相等"
fi

  • 不等
#!/bin/bash
val1=3
val2=4
if [ $val1 != $val2 ]
then
	echo "不等"
fi

2. 关系运算符

关系运算符只支持数字,不支持字符串,如果字符串的值是数字则可以使用。

  • -lt(less than 小于)

  • -le(less equal 小于等于)

  • -eq(equal 等于)

  • -gt (greater than 大于)

  • -ge (大于等于)

  • -ne(Not equal 不等于)
    案例

    val1=3
    val2=4
    if [ $val1 -lt $val2 ]
    then
    	echo "小于"
    else
    	echo "大于"
    fi
    if [ $val1 -eq $val2 ]
    then
    	echo "相等"
    else
    	echo "不等"
    fi
    

3. 布尔运算符

  • ! 非运算
  • -o 或运算
  • -a 与运算
    案例
val1=3
val2=4
if [ $val1 != $val2 ]
then
	echo "不等"
fi

val1=3
val2=4
if [ $val1 -lt 10 -o $val2 -gt 1 ]
then
   echo "$val1 小于 10 或 $val2 大于 1 : 返回 true"
else
   echo " $val1 小于 10 或 $val2 大于 1 : 返回 false"
fi
##结果:3 小于 10 或 4 大于 1 : 返回 true

val1=3
val2=4
if [ $val1 -lt 3 -a $val2 -gt 1 ]
then
   echo "$val1 小于 10 或 $val2 大于 1 : 返回 true"
else
   echo " $val1 小于 10 或 $val2 大于 1 : 返回 false"
fi
## 结果:3 小于 10 或 4 大于 1 : 返回 false

4. 逻辑运算符

  • && :AND
  • || : OR
a=3
b=4
if [[ $a -lt 2 && $b -gt 3 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi
## 结果:返回 false
if [[ $a -lt 2 || $b -gt 3 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi
## 结果:返回 true

5. 字符串运算符

  • = : 如果两个字符串相等,则为true
  • != :如果两个字符串不相等,则为true
  • -z :字符串长度为0,则为true
  • -n :字符串长度不为0,则为true
  • $ : 字符串不为空,则为true
a=hello
b=hello1
if [ $a = $b ]
then
	echo "相等"
else
	echo "不等"
fi


if [ -z $a ]
then
	echo "字符串长度为0"
else
	echo "字符串长度不为0"
fi
## 结果:字符串长度不为0

if [ -n $a ]
then
	echo "字符串长度为0"
else
	echo "字符串长度不为0"
fi
## 结果:字符串长度不为0

a=""
b=hello1
if [ $a ]
then
	echo "字符串长度为0"
else
	echo "字符串长度不为0"
fi

a=""
b=hello1
if [ $a ]
then
	echo "字符串不为空"
else
	echo "字符串为空"
fi

6. 文件测试运算符

在此例举常用的两个文件测试运算符

  • -s file : 判断文件是否为空,不为空则为true
  • -e file :判断文件或者目录是否存在,如果存在,则返回 true
    案例
if [ -s $file ]
then
   echo "文件不为空"
else
   echo "文件为空"
fi

if [ -e $file ]
then
   echo "文件存在"
else
   echo "文件不存在"
fi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小曾同学.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值