当前位置:   article > 正文

shell运算符_shell 中运算符优先级

shell 中运算符优先级

这一节超级简单,就三个主要内容。

Part 1:declare [+/-][选项] 变量名

  • - 表示给变量设定类型属性
  • + 表示取消掉设定的类型属性

选项:

  • a 数组类型
  • i 整数类型
  • x 设为环境变量
  • r 将该变量设定为只读属性,设定后无法被unset取消掉,无法修改其中的内容
  • p 显示指定变量的被声明类型

1.1 整数类型例子

x=1
y=2
declare -i result=$x+$y
echo $result
#结果是3,不是之前的 1+2
#还有一点,不需要把x和y也使用declare设定,当然设定了也没有错
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.2 环境变量例子

#先使用前面的介绍的方法设定环境变量
export x=1
#上面的 export 就是调用了 declare 来设定环境变量的
declare -x x=1
  • 1
  • 2
  • 3
  • 4

1.3 数组例子

#一般设定数组方法
movie[0]=hello
movie[1]=world
#或者也可以使用 declare -a 来设定
declare -a movie[2]=again
#注意接下来的输出
#第一种输出方式:$((数组名[下标]))
echo $((movie[0]))
#输出结果是 hello
#如果直接写
echo $movie[0]
#那么shell先解析movie,这里默认输出movie[0],也就是hell,接着的[0],被当作字符,拼接上前面的内容输出,所以结果是
hello[0]
#第二种输出方式:$[数组名[下标]]
echo $[movie[1]]
#输出结果是 world
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Part 2:数值运算的方法

2.1 expr/let $变量1 运算符 $变量2 运算符 ·········

直接看例子就懂了:

x=1
y=2
c=$(expr $x + $y)
echo $c
#结果是 3
  • 1
  • 2
  • 3
  • 4
  • 5

注意,$变量1 运算符 $变量2 运算符·····这样的格式之间一定要有空格隔开,否则 expr 无效。

2.2 $[运算式] 和 $((运算式))

x=1
y=1
echo $(($x+$y))
echo $[$x+$y]
  • 1
  • 2
  • 3
  • 4

就是在计算式外面套上一层。

2.3 运算符优先级

这里写图片描述

Part 3:变量测试

这里写图片描述

这里解释一下怎么看这张表格,以第一个x=${y-新值},为例

  • 当y没有设置的时候,或者刚被 unset y 之后,这条式子的结果就是x=新值。
  • 当y有值,可是为空的时候,那么x也会等于空值。
  • 当y有值,且不为空时,则x=$y,就是x会等于y的值

同样的表达式,会根据y的情况决定x的情况,所以就可以拿x来做y的变量测试了,下面的就是表达式不同,结果也不同,就不一一解释了。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/953211
推荐阅读
相关标签
  

闽ICP备14008679号