首页 > 系统相关 >Shell 基本运算符

Shell 基本运算符

时间:2023-01-09 10:05:29浏览次数:52  
标签:基本 Shell val expr echo 运算符 实例 表达式

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

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):

实例
#!/bin/bash

val=`expr 2 + 2`
echo "两数之和为 : $val"


​​运行实例 »

执行脚本,输出结果如下所示:

两数之和为 : 4

两点注意:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

算术运算符

下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:

运算符

说明

举例

+

加法

`expr $a + $b` 结果为 30。

-

减法

`expr $a - $b` 结果为 -10。

*

乘法

`expr $a \* $b` 结果为 200。

/

除法

`expr $b / $a` 结果为 2。

%

取余

`expr $b % $a` 结果为 0。

=

赋值

a=$b 把变量 b 的值赋给 a。

==

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

[ $a == $b ] 返回 false。

!=

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

[ $a != $b ] 返回 true。

注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]

实例

算术运算符实例如下:

实例
#!/bin/bash
# author:菜鸟教程
# url:http://www.runoob.com​​

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
echo "a 等于 b"
fi
if [ $a != $b ]
then
echo "a 不等于 b"
fi

执行脚本,输出结果如下所示:

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b

注意:

  • 乘号(*)前边必须加反斜杠(\)才能实现乘法运算;
  • if...then...fi 是条件语句,后续将会讲解。
  • 在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "\" 。


Shell 基本运算符_运算符

标签:基本,Shell,val,expr,echo,运算符,实例,表达式
From: https://blog.51cto.com/u_15822686/5996872

相关文章

  • 关系运算符shell
    关系运算符只支持数字,不支持字符串,除非字符串的值是数字。下表列出了常用的关系运算符,假定变量a为10,变量b为20:运算符说明举例-eq检测两个数是否相等,相等返回true。[......
  • 布尔运算符shell
    下表列出了常用的布尔运算符,假定变量a为10,变量b为20:运算符说明举例!非运算,表达式为true则返回false,否则返回true。[!false]返回true。-o或运算,有一个表达式......
  • 读编程与类型系统笔记02_基本类型
    1. 空类型1.1. uninhabitabletype1.1.1. 声明从不返回的函数1.2. 不能有任何值的类型,其可取值的集合是一个空集合1.3. 函数不返回的原因1.3.1. 函数在所有代......
  • python调试模块pdb:pdb基本用法(转)
    转载自:https://www.jianshu.com/p/fb5f791fcb18python调试:pdb基本用法(转)Edward_f0cusIP属地:台湾12016.01.0615:39:49字数767阅读73,778转自IBM开发......
  • UIAutomation.0.8.7B3.samples uia powershell 插件例子解析
     uiautomationpowershell插件例子解析  作者给出了示例,不过在中文版Windows上需要略微修改下。因为中文版的进程名名字跟程序名字可能不一样。作者给出里例子是按首......
  • Linux反弹shell总结
    前言反弹shell(reverseshell)时控制端监听某TCP/UDP端口,受控端发起连接到控制端口,并将其命令行的输入输出转到控制端。我们不管在平时的CTF比赛中,还是在做渗透测试,反弹she......
  • VsCode新建Java、SpringBoot、Python、JavaWeb项目的基本步骤
    新建Java项目选中正上方的搜索框,按下F1快捷键,输入createJava,即可出现这样的一个命令:选中这个:然后为新创建的项目选择一个合适的位置就好啦!新建SpringBoot项目选中......
  • Xshell 批量删除会话
    前言由于我总是创建会话忘记删除,所以找了找怎么可以快速的删除。 方法如下先打开已有的会话,随后再点开会话文件夹。  xsh后缀的就是会话,全选删除即可 ......
  • HTML_1_基本格式
    HTML,超文本标记语言,与url,http协议称为互联网三大基石。用于组织数据显示的形式。 一、标准结构顶层标签:html头标签:head,常用head标签主体标签:body,常用body......
  • 2.2JS中的运算符号
    ​ JS中运算符号大部分和java中的运算符一样,我们在这里分析一下特殊的运算符号 关于/%JS中,数字类型都是number,除法的结果中如果没有小数位,直接就是一个整数,如......