zoukankan      html  css  js  c++  java
  • Shell基本运算符之算术、关系运算符

    Shell 运算符

    =============================摘自菜鸟教程=================================

    Shell和其他编程语言一样,支持多种运算符包括:

    A、算术运算符;

    B、关系运算符;

    C、布尔运算符;

    D、字符串运算符;

    E、文件测试运算符;

    1、算术运算符

    常用算术运算符

    运算符号

    说明

    例子

    +

    加法

    `expr $a + $b`

    -

    减法

    `expr $a - $b`

    *

    乘法

    `expr $a * $b`

    /

    除法

    `expr $a / $b`

    %

    取余

    `expr $a % $b`

    =

    赋值

    a=$b,将变量b的值赋值给a

    ==

    相等。用于比较两个相等则返回true

    [ $a == $b ]

    !=

    不相等,用于比较两个数字,相等则返回true

    [ $a != $b ]

    示例:

    #!/bin/bash
    ###本脚本主要用于练习算术运算符;
    ###写于20190903
    ###1、两个变量求和
    if [ ! $1 - ! $2 ]
    then
    	echo "*******本脚本主要用于两个变量的算术运算;"
    	echo "*******本脚本运行格式为:sh suanshu_learn.sh 变量1 变量2"
    	break
    else
    	res=`expr $1 + $2`
    	echo "变量a加b等于:$res"
    
    	###2、两个变量求差;
    	res=`expr $1 - $2`
    	echo "变量a减b等于:$res"
    
    	###3、两个变量相乘;
    	res=`expr $1 * $2`
    	echo "变量a乘以变量b等于:$res"
    
    	###4、两个变量相除;
    	res=`expr $1 / $2`
    	echo "变量a除以变量b等于:$res"
    
    	###5、两个变量取余;
    	res=`expr $1 % %b`
    	echo "变量a除以b取余等于:$res"
    
    	###6、判断两个变量相等;
    	if [ $a == $b ]
    	then
    		echo "变量a等于变量b"
    	fi
    
    	###7、判断两个变量不相等;
    	if [ $a != $b ]
    	then
    		echo "变量a不等于变量b"
    	fi
    fi
    

      

    2、关系运算符

    关系运算符只支持数字,不支持字符串,除非字符串为数字。

    常用的关系运算符

    运算符

    说明

    例子

    -eq

    检测两个数是否相等,相等返回true

    [ $a -eq $b ]

    -ne

    检测两个数是否不相等,不相等返回true

    [ $a -ne $b ]

    -gt

    检测左边数是否大于右边的,如果是,返回true

    [ $a -gt $b ]

    -lt

    检测左边数是否小于右边的,如果是,返回true

    [ $a -lt $b ]

    -ge

    检测左边数是否大于等于右边的,如果是,返回true

    [ $a -ge $b ]

    -le

    检测左边数是否小于等于右边的,如果是,返回true

    [ $a -le $b ]

    示例:relation_test.sh

    #!/bin/bash
    ###本脚本主要用于关系运算符
    ###本脚本写于20190904
    
    ###1、检测两个数字是否相等
    if [ ! $1 ]
    then
    	echo "第一个参数为空"
    	echo "****************************************************************"
    	echo "****************************************************************"
    	echo "**************执行用例的格式为:sh $0 变量1 变量2***************"
    	echo "****************************************************************"
    	echo "****************************************************************"
    	break
    else
    	if [ ! $2 ]
    	then
    		echo "第二个参数为空"
    		echo "****************************************************************"
    		echo "****************************************************************"
    		echo "**************执行用例的格式为:sh $0 变量1 变量2***************"
    		echo "****************************************************************"
    		echo "****************************************************************"
    		break
    	else
    		if [ $3 ]
    		then
    			echo "第三个参数为多余参数"
    			break
    		else
    			if [ $1 -eq $2 ]
    			then
    				echo "执行的是第一个判断语句"
    				echo "参数1等于参数2"
    			fi
    
    			###2、检测两个数字是否不相等
    			if [ $1 -ne $2 ]
    			then
    				echo "执行的是第二个判断语句"
    				echo "参数1不等于参数2"
    			fi
    
    			###3、检测左边的数是否大于右边的;
    			if [ $1 -gt $2 ]
    			then
    				echo "执行的是第三个判断语句"
    				echo "参数1大于参数2"
    			fi
    
    			###4、检测左边的数是否小于右边;
    			if [ $1 -lt $2 ]
    			then
    				echo "执行的是第四个判断语句"
    				echo "参数1小于参数2"
    			fi
    
    			###5、检测左边的数是否大于等于右边的;
    			if [ $1 -ge $2 ]
    			then
    				echo "执行的是第五个判断语句"
    				echo "参数1大于等于参数2"
    			fi
    
    			###5、检测左边的数小于等于右边的;
    			if [ $1 -le $2 ]
    			then
    				echo "执行的是第六个判断语句"
    				echo "参数1小于等于参数2"
    			fi
    		fi
    	fi
    fi
    

      

     

     

     

     

  • 相关阅读:
    IOS5,6,7不同版的适配. 强制旋转和自动旋转.
    第3条:多用字面量语法,少用与之等价的方法
    UIViewAnimation警告
    ViewController的生命周期分析和使用
    Chrome浏览器下调试SASS
    Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
    js收集的一些好的题型
    js异步加载 defer和async 比较
    前端知识点
    H5下拉刷新特效demo,动画流畅
  • 原文地址:https://www.cnblogs.com/tengjiang/p/11461160.html
Copyright © 2011-2022 走看看