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