linux脚本变量运算符,【Linux】第六章 Shell运算符

本文详细介绍了Linux系统中变量的声明方法与数值运算技巧,包括declare命令的各种用法、数组变量的定义与调用、环境变量的声明以及只读变量的设定等内容。此外,还总结了Linux中的运算符及其优先级。
摘要由CSDN通过智能技术生成

阅读量:

137

初次接触Linux的学习笔记,部分作手册自查使用。如有错误或遗漏还请海涵,可评论或邮箱联系。

最后修改时间:2020-03-14 09:37:23 星期六

一、declare命令

1.1 declare作用

declare [+/-] [选项] 变量名:声明变量类型

-:给变量设定类型

+:取消变量的类型

-a:声明成数组型

-i:声明成整数型

-x:声明成环境变量

-r:声明成只读变量

-p:显示指定指定变量的被声明类型

1.2 声明整型变量

aa=11

bb=22

cc=$aa+$bb

echo $cc # 11+22

declare -i cc=$aa+$bb # 将cc声明成整型后,在赋值过程中会自动把后面的变量值视为整型来运算

echo $cc # 33

declare -p cc # declare -i cc="33"

1.3 声明数组变量

movie[0]=zp # 定义movie数组,并给下标0赋值

movie[1]=tp

declare -a movie[2]=live # 作用完全等同于直接写movie[2]=live

# 直接调用数组名,默认为movie[0]

echo ${movie} # zp

# 正常调用

echo ${movie[2]} # live

# 调用数组内全部值

echo ${movie[*]} # zp tp live

1.4 声明环境变量

declare -x 变量名=变量值:作用同export

注:export是一个简略命令,实际上执行的也是declare -x命令

1.5 声明只读变量

declare -r 变量名:给变量赋只读属性

注:只读属性会让变量不可修改,不可删除,甚至不能取消只读属性。但只要不写入系统配置文件,重启即会消失。

二、数值运算

2.1 方法一:declare命令

使用declare -i命令

aa=11

bb=22

declare -i cc=$aa+$bb # 将cc声明成整型后,在赋值过程中会自动把后面的变量值视为整型来运算

echo $cc # 33

2.2 方法二:expr或let数值运算工具

aa=11

bb=22

dd=$(expr $aa + $bb) # 注意,"+"左右两侧必须有空格!

echo $dd # 33

注:"+"号左右两侧必须有空格!

2.3 方法三:使用$系列命令

$((运算式))或$[运算式]

注:三种方法里,推荐使用$((运算式))这种

aa=11

bb=22

ff=$(($aa+$bb)) # ehco ff:33

gg=$[$aa+$bb] # ehco gg:33

三、运算符及优先级汇总

优先级

运算符

说明

13

-,   +

单目负,单目正(不是加减)

12

!,   ~

逻辑非,按位取反或补码

11

*,   /,   %

乘,除,取余

10

+,   -

加,减

9

<>

按位左移,按位右移

8

<=,   >=,   

小于等于,大于等于,小于,大于

7

==,   !=

等于,不等于

6

&

按位与

5

^

按位异或

4

|

按位或

3

&&

逻辑与

2

||

逻辑或

1

=,   +=,   -=,   *=,   /=,   %=,   &=,   ^=,   |=,   <<=,   >>=

赋值,运算并赋值

注:不记优先级,加括号。有运算符时查表即可

四、变量测试

变量置换方式

变量y没有设置

变量y为空值

变量y有值

x=${y-新值}

x=新值

x为空

x=$y

x=${y:-新值}

x=新值

x=新值

x=$y

x=${y+新值}

x为空

x=新值

x=新值

x=${y:+新值}

x为空

x为空

x=新值

x=${y=新值}

x=新值

y=新值

x为空

y值不变

x=$y

y值不变

x=${y:=新值}

x=新值

y=新值

x=新值

y=新值

x=$y

y值不变

x=${y?新值}

新值输出到标准错误输出(即屏幕)

x为空

x=$y

x=${y:?新值}

新值输出到标准错误输出

新值输出到标准错误输出

x=$y

注:使用测试语句可以用简单的语句实现对变量y的测试,可能会使脚本效率更高。但逻辑上会变的复杂,在一般的情景下不推荐使用

unset y # 删除变量y

x=${y-2} # 使用表格中第一个置换方式,此时y没有设置,因此x=新值

echo $x # 2

y=""

x=${y-2} # 使用表格中第一个置换方式,此时y值为空,因此x为空

echo $x # 显示空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值