shell中算术运算

时间:2019-04-16 23:59:04  来源:igfitidea点击:

在shell中,可以对变量进行数学运算。 hell有内置的算术符。同时,我们还可以外部命令,比如expr和bc。

Bash Shell中的算术

语法

$((expression))

示例

echo $(( 10 + 5 ))
#!/bin/bash
x=5
y=10
ans=$(( x + y ))
echo "$x + $y = $ans"

整数算术符

操作符说明示例结果
+加法echo $(( 20 + 5 ))25
-减法echo $(( 20 - 5 ))15
*乘法echo $(( 20 / 5 ))4
/除法echo $(( 20 * 5 ))100
%取余echo $(( 20 % 3 ))2
++算后增量(自增1)x=5
echo $(( x++ ))
echo $(( x++ ))
5
6
--算后减量(自减1)x=5
echo $(( x-- ))
4
**指数运算x=2
y=3
echo $(( x ** y ))
8

创建整数变量

使用declare命令创建整数变量:

declare -i y=10
echo $y

如果给变量y赋值一个字符,shell会将其转换为整数型(0),注意,并不是a的ascii码。

declare -i y=10
echo $y
y=a
echo $y

示例

#!/bin/bash
# 将 x,y 和 z 设置为整数数据类型
declare -i x=10
declare -i y=10
declare -i z=0
z=$(( x + y ))
echo "$x + $y = $z"

# 尝试设置为字符 'a'
x=a
z=$(( x + y ))
echo "$x + $y = $z"

创建常量变量

可以使用readonly命令或者declare命令来创建常量。

内置的readonly命令语法如下:

readonly var
readonly varName=value

declare 定义常量的语法:

declare -r var
declare -r varName=value

示例

创建一个名为DATA的常量:

readonly DATA=/home/data/theitroad.dat
echo $DATA
/home/data/theitroad.dat
DATA=/tmp/foo
# Error ... 常量不能被修改

常量也不能删除

$ unset DATA
bash: unset: DATA: cannot unset: readonly variable