shell-运算符

一、算术运算符

expr 表达式 or var=`expr 表达式`

1、示例
[root@vm-paas scwyfy]# cat expr_demo.sh
#!/bin/bash

read -p "请输入第一个数字:" a
read -p "请输入第二个数字:" b

echo "a=${a}, b= ${b}"

echo "a+b= `expr ${a} + ${b}`"
echo "a-b= `expr ${a} - ${b}`"
echo "a*b= `expr ${a} \* ${b}`"
echo "b/a= `expr ${b} / ${a}`"
echo "b%a= `expr ${b} % ${a}`"


[root@vm-paas scwyfy]# sh expr_demo.sh
请输入第一个数字:1
请输入第二个数字:2
a=1, b= 2
a+b= 3
a-b= -1
a*b= 2
b/a= 2
b%a= 0

  

二、运算比较符
      1. 整数型比较
         方式1 [ $a  operation $b ]
                  operation: -eq -ne -gt -lt -ge -le
         方式2 (($a operation $b))
                  operation:  == != > < >= <=
       2. 字符串比较
          方式1 [ $a operation $b ]
                  operation: > < == !=
                  > < 需要转义
                 会发生word splitting 
                 eg a="abc" b="abc efg"
                     [ $a == $b ] :报错,$b会被拆分成多个值
           方式2 [[ $a operation $b ]]
                   operation: > < == !=
                   无需转义,不会发生word splitting 推荐使用[[]]

示例脚本

[root@vm-paas scwyfy]# cat operation_int.sh
#!/bin/bash

read -p "请输入a: " a
read -p "请输入b: " b
echo "a=${a}, b=${b}"

if [ $a -eq $b ]
then
   echo " a eq b "
else
   echo " a ne b"

fi

if [ $a -lt $b ]
then
   echo " a lt b"
else
   echo " a ge b"

fi

if [ $a -gt $b ]
then
  echo "a gt b"
else
  echo "a le b"

fi
[root@vm-paas scwyfy]#

  

三、布尔运算符、逻辑运算符

布尔运算符:!  -o  -a  
              [ ! 1 \> 2 ]: echo $? 返回0
              [ 1 \> 2 -o  1 == 1 ]: echo $? 返回0
              [ 1 \> 2 -a  1 == 1 ]: echo $? 返回1

逻辑运算符:! || &&
             [[ ! 1 > 2 ]]: echo $? 返回0
             [[ 1 > 2 || 1 == 1 ]]: echo $?  返回0
             [[ 1 > 2 && 1 == 1 ]]: echo $? 返回1
区别:

布尔运算符必须有[] 或 test命令执行
逻辑运算符必须有[[]]执行

  

posted @ 2024-04-16 22:04  scwyfy  阅读(1)  评论(0编辑  收藏  举报