Shell基础运算符有哪些,你忘了再学吗?

2026-05-25 06:251阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1220个文字,预计阅读时间需要5分钟。

Shell基础运算符有哪些,你忘了再学吗?

目录 + 1. Shell常用运算符 + 2. Shell中数值运算的方法 + (1)方式一 + (2)方式二 + (3)方式三 + 推荐使用 + 1. Shell常用运算符 + Shell中常用运算符如下表所示: + 优先级越高,运算优先级越高,具有较高优先级的运算符会先于较低优先级的运算符执行。

目录
  • 1、Shell常用运算符
  • 2、Shell中数值运算的方法
    • (1)方式一
    • (2)方式二
    • (3)方式三(推荐)

1、Shell常用运算符

Shell中常用运算符如下表:

优先级数值越大优先级越高,具有较高优先级级别的运算符先于较低级别的运算符进行求值运算。

优先级 运算符 说明 13 -,+ 单目负、单目正 12 !,~ 逻辑非、按位取反或补码 11 *,/,% 乘、除、取模 10 +,- 加、减 9 <<,>> 按位左移、按位右移 8 <=,>=,<,> 小于或等于、大于或等于、小于、大于 7 ==,!= 等于、不等于 6 & 按位与 5 ^ 按位异或 4 ` ` 3 && 逻辑与 2 ` 1 =,+=,-=,/=
`%=,&=,^=, =<br /><<=,>>=`

简单示例:

# 例1:加减乘除 # 虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级。 [root@Lyl ~]# num=$(( (10+8)*6/2 )) [root@Lyl ~]# echo $num 54 # 例2:取模运算 [root@Lyl ~]# num=$(( 19%5 )) [root@Lyl ~]# echo $num 4 # 例3:逻辑与 # 逻辑与运算只有相与的两边都是1,与的结果才是1,否则与的结果是0 [root@Lyl ~]# value=$(( 1&&0 )) [root@Lyl ~]# echo $value 0 2、Shell中数值运算的方法

在Shell中所有变量的默认类型是字符串型,那如果我需要进行数值运算,可以采用以下三种方法中的任意一种:

(1)方式一

就是使用declare命令,把一个变量声明成数值类型。

# 给变量aa和bb赋值 [root@Lyl tmp]# aa=11 [root@Lyl tmp]# bb=22 # 声明变量cc的类型是整数型,它的值是aa和bb的和。 # 这里注意一下,其实应该把变量aa和bb也通过declare命令声明成数值型, # 但是Shell这点还好,只把最后的和cc声明成数值型,也是能进行计算的。 [root@Lyl tmp]# declare -i cc=$aa+$bb # 输出变量cc [root@Lyl tmp]# echo $cc 33

该种方式并不太建议使用,编写有些麻烦。虽然系统最终换算的方式还是用declare命令,但还是不推荐。

(2)方式二

使用exprlet数值运算工具,不推荐。

要想进行数值运算的第二种方法是使用expr命令,这种命令就没有declare命令复杂了。

expr运算工具示例如下:

# 给变量aa和bb赋值 [root@Lyl ~]# aa=11 [root@Lyl ~]# bb=22 # aa和bb的求和。 # 注意“+”号左右两侧必须有空格。 [root@Lyl ~]# cc=$(expr $aa + $bb) # 说明一下 # 我们之前说过$( )中调用的是系统命令, # 换句话说$( )中`expr $aa + $bb `是一条运算命令。 # 输出cc变量的值 [root@Lyl ~]# echo $cc 33 # 使用expr命令进行运算时,要注意元算符号左右两侧必须有空格, # 否则会报错,元算不能被执行。 [root@Lyl ~]# cc=$(expr $aa +$bb) expr: 语法错误

let命令和expr命令基本类似,都是Linux中的运算命令。

let元算工具示例如下:

# 示例1 # 给变量aa和bb赋值 [root@Lyl ~]# aa=11 [root@Lyl ~]# bb=22 # aa和bb的求和。 [root@Lyl ~]# let cc=$aa+$bb [root@Lyl ~]# echo $cc 33 # 示例2 # 定义变量n [root@Lyl ~]# n=10 # 变量n的值等于变量本身再加1 [root@Lyl ~]# let n+=1 [root@Lyl ~]# echo $n 11

总结:

expr命令和let命令大家可以按照习惯使用,不过let命令对格式要求要比expr命令宽松,所以推荐使用let命令进行数值运算。

(3)方式三(推荐)

使用$((运算符))或者$[运算符]的方式进行运算。(两种都可以)

# 给变量aa和bb赋值 [root@Lyl tmp]# aa=11 [root@Lyl tmp]# bb=22 # 求和 [root@Lyl ~]# cc=$(( $aa+$bb)) [root@Lyl ~]# echo $cc 33

总结:

$( )中存放的是系统命令,$(( ))中是进行数学运算的。

$[ ]不推荐使用,因为[ ]在Shell中有极其特殊且重要的作用,就是测试。(之后Shell编程的部分说明)

这三种数值运算方式,大家可以按照自己的习惯来进行使用,推荐使用方式三。

Shell基础运算符有哪些,你忘了再学吗?

标签:运算符

本文共计1220个文字,预计阅读时间需要5分钟。

Shell基础运算符有哪些,你忘了再学吗?

目录 + 1. Shell常用运算符 + 2. Shell中数值运算的方法 + (1)方式一 + (2)方式二 + (3)方式三 + 推荐使用 + 1. Shell常用运算符 + Shell中常用运算符如下表所示: + 优先级越高,运算优先级越高,具有较高优先级的运算符会先于较低优先级的运算符执行。

目录
  • 1、Shell常用运算符
  • 2、Shell中数值运算的方法
    • (1)方式一
    • (2)方式二
    • (3)方式三(推荐)

1、Shell常用运算符

Shell中常用运算符如下表:

优先级数值越大优先级越高,具有较高优先级级别的运算符先于较低级别的运算符进行求值运算。

优先级 运算符 说明 13 -,+ 单目负、单目正 12 !,~ 逻辑非、按位取反或补码 11 *,/,% 乘、除、取模 10 +,- 加、减 9 <<,>> 按位左移、按位右移 8 <=,>=,<,> 小于或等于、大于或等于、小于、大于 7 ==,!= 等于、不等于 6 & 按位与 5 ^ 按位异或 4 ` ` 3 && 逻辑与 2 ` 1 =,+=,-=,/=
`%=,&=,^=, =<br /><<=,>>=`

简单示例:

# 例1:加减乘除 # 虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级。 [root@Lyl ~]# num=$(( (10+8)*6/2 )) [root@Lyl ~]# echo $num 54 # 例2:取模运算 [root@Lyl ~]# num=$(( 19%5 )) [root@Lyl ~]# echo $num 4 # 例3:逻辑与 # 逻辑与运算只有相与的两边都是1,与的结果才是1,否则与的结果是0 [root@Lyl ~]# value=$(( 1&&0 )) [root@Lyl ~]# echo $value 0 2、Shell中数值运算的方法

在Shell中所有变量的默认类型是字符串型,那如果我需要进行数值运算,可以采用以下三种方法中的任意一种:

(1)方式一

就是使用declare命令,把一个变量声明成数值类型。

# 给变量aa和bb赋值 [root@Lyl tmp]# aa=11 [root@Lyl tmp]# bb=22 # 声明变量cc的类型是整数型,它的值是aa和bb的和。 # 这里注意一下,其实应该把变量aa和bb也通过declare命令声明成数值型, # 但是Shell这点还好,只把最后的和cc声明成数值型,也是能进行计算的。 [root@Lyl tmp]# declare -i cc=$aa+$bb # 输出变量cc [root@Lyl tmp]# echo $cc 33

该种方式并不太建议使用,编写有些麻烦。虽然系统最终换算的方式还是用declare命令,但还是不推荐。

(2)方式二

使用exprlet数值运算工具,不推荐。

要想进行数值运算的第二种方法是使用expr命令,这种命令就没有declare命令复杂了。

expr运算工具示例如下:

# 给变量aa和bb赋值 [root@Lyl ~]# aa=11 [root@Lyl ~]# bb=22 # aa和bb的求和。 # 注意“+”号左右两侧必须有空格。 [root@Lyl ~]# cc=$(expr $aa + $bb) # 说明一下 # 我们之前说过$( )中调用的是系统命令, # 换句话说$( )中`expr $aa + $bb `是一条运算命令。 # 输出cc变量的值 [root@Lyl ~]# echo $cc 33 # 使用expr命令进行运算时,要注意元算符号左右两侧必须有空格, # 否则会报错,元算不能被执行。 [root@Lyl ~]# cc=$(expr $aa +$bb) expr: 语法错误

let命令和expr命令基本类似,都是Linux中的运算命令。

let元算工具示例如下:

# 示例1 # 给变量aa和bb赋值 [root@Lyl ~]# aa=11 [root@Lyl ~]# bb=22 # aa和bb的求和。 [root@Lyl ~]# let cc=$aa+$bb [root@Lyl ~]# echo $cc 33 # 示例2 # 定义变量n [root@Lyl ~]# n=10 # 变量n的值等于变量本身再加1 [root@Lyl ~]# let n+=1 [root@Lyl ~]# echo $n 11

总结:

expr命令和let命令大家可以按照习惯使用,不过let命令对格式要求要比expr命令宽松,所以推荐使用let命令进行数值运算。

(3)方式三(推荐)

使用$((运算符))或者$[运算符]的方式进行运算。(两种都可以)

# 给变量aa和bb赋值 [root@Lyl tmp]# aa=11 [root@Lyl tmp]# bb=22 # 求和 [root@Lyl ~]# cc=$(( $aa+$bb)) [root@Lyl ~]# echo $cc 33

总结:

$( )中存放的是系统命令,$(( ))中是进行数学运算的。

$[ ]不推荐使用,因为[ ]在Shell中有极其特殊且重要的作用,就是测试。(之后Shell编程的部分说明)

这三种数值运算方式,大家可以按照自己的习惯来进行使用,推荐使用方式三。

Shell基础运算符有哪些,你忘了再学吗?

标签:运算符