Linux shell编程(三)算术运算
2011-06-01 16:39
211 查看
例如:
echo $((${j:-8}+2))
如果变量j不存在或空值,则${j:-8}展开的结果为8,再和2做加法运算,得10
例如:
echo $((k+4))
如果变量k不存在或空值,其值为0+4=4
一.算术扩展
算术扩展的语法是:$((表达式))
例如:
unset i
echo $((12+$i))
如果表达式内有变量,该变量名称之前最好不要加上$这个符号
由于变量i不存在,结果就变为12+
如果写成:echo $((12+i)),这样可正确执行。
如果表达式中有“变量扩展”,则要加上$
例如:$((${j:-8}+2))
各种简单的算术运用:
r=$((6+5)) r的值为11
r=$((6*5)) r的值为30
r=$((2**5)) r的值为32 (2的5次方)
递增 1
r=6
r=$((++r))
echo $r
结果为7。 (r值加1后,在赋值给r)
递减 1
r=6
r=$((--r))
echo $r
结果为5. (r值减1后,在赋值给r)
运算后减 1
m=6
r=$((4+m--))
m值先代入6,和4做运算,得值为10,在赋值给r。接着m的值减1,结果为:r=10 m=5
位左移
m=16
r=$((m<<1))
m值代入16,以二进制的方式向左移一位,等于把值放大两倍,结果为:32
位右移
m=16
r=$((m>>1))
等于把值缩小2倍,结果为:8
i=168
((i+=60))
i+=60的意思同于i=i+60,即i加上60后,把运算结果赋值给i,i的值变成228
((i-=60))的意思同于i=i-60
((i/=2))的意思同于i=i/2
(())的用法和let的效果是一样的,例如((i++))和let "i++"执行结果相同
二. 使用$[]做算术运算
使用$[]做算术运算和$(())类似
语法:r=$[算术式]
r=5
r=$[r+1]
echo $r
结果为:6
三. 使用内置命令declare、let做算术运算
declare -i I
I=8+16
echo $I
使用declare事先设定变量I的属性为“整数”
由于I是整数,8+16就不再是字符串,而是一个算式,结果为:24
必须特别留意的是:
算式中,运算符和操作数之间不可以有空格,要紧密连接
特殊符号不必使用\转义
算式中,可包含其他变量,变量之前不必加$
使用declare -i 设定变量后,加减乘除等运算就非常直观了
declare -i I
I=8+16
I=16-8
I=5*3
I=22/5
I=2**3
let的用法
例如:let I=8+16
let I=22/5
let I='16-8'
echo $((${j:-8}+2))
如果变量j不存在或空值,则${j:-8}展开的结果为8,再和2做加法运算,得10
例如:
echo $((k+4))
如果变量k不存在或空值,其值为0+4=4
一.算术扩展
算术扩展的语法是:$((表达式))
例如:
unset i
echo $((12+$i))
如果表达式内有变量,该变量名称之前最好不要加上$这个符号
由于变量i不存在,结果就变为12+
如果写成:echo $((12+i)),这样可正确执行。
如果表达式中有“变量扩展”,则要加上$
例如:$((${j:-8}+2))
各种简单的算术运用:
r=$((6+5)) r的值为11
r=$((6*5)) r的值为30
r=$((2**5)) r的值为32 (2的5次方)
递增 1
r=6
r=$((++r))
echo $r
结果为7。 (r值加1后,在赋值给r)
递减 1
r=6
r=$((--r))
echo $r
结果为5. (r值减1后,在赋值给r)
运算后减 1
m=6
r=$((4+m--))
m值先代入6,和4做运算,得值为10,在赋值给r。接着m的值减1,结果为:r=10 m=5
位左移
m=16
r=$((m<<1))
m值代入16,以二进制的方式向左移一位,等于把值放大两倍,结果为:32
位右移
m=16
r=$((m>>1))
等于把值缩小2倍,结果为:8
i=168
((i+=60))
i+=60的意思同于i=i+60,即i加上60后,把运算结果赋值给i,i的值变成228
((i-=60))的意思同于i=i-60
((i/=2))的意思同于i=i/2
(())的用法和let的效果是一样的,例如((i++))和let "i++"执行结果相同
二. 使用$[]做算术运算
使用$[]做算术运算和$(())类似
语法:r=$[算术式]
r=5
r=$[r+1]
echo $r
结果为:6
三. 使用内置命令declare、let做算术运算
declare -i I
I=8+16
echo $I
使用declare事先设定变量I的属性为“整数”
由于I是整数,8+16就不再是字符串,而是一个算式,结果为:24
必须特别留意的是:
算式中,运算符和操作数之间不可以有空格,要紧密连接
特殊符号不必使用\转义
算式中,可包含其他变量,变量之前不必加$
使用declare -i 设定变量后,加减乘除等运算就非常直观了
declare -i I
I=8+16
I=16-8
I=5*3
I=22/5
I=2**3
let的用法
例如:let I=8+16
let I=22/5
let I='16-8'
相关文章推荐
- Linux Shell编程之算术运算
- bash脚本编程之条件判断、算术运算及实例
- Shell基本编程之条件、迭代流程控制、算术运算
- bash 脚本编程3 条件判断和算术运算 (笔记)
- bash变量及bash脚本编程算术运算介绍
- Linux学习之十四(bash脚本编程之三条件判断及算术运算)
- [linux]Shell Script编程——算术运算
- shell脚本编程之条件判断,算术运算,整数测试及特殊变量
- bash脚本编程之算术运算之加减乘除取于(+,-,*,/,**,%)
- linux shell 使用双小括号进行算术运算
- linux shell编程学习笔记(5)shell运算符号和运算命令
- bash编程之算术运算
- Linux Shell之四 算术运算
- 5-4 bash脚本编程之三 条件判断及算术运算
- 6.1bash编程入门值变量类型、for循环和算术运算
- Linux shell的算术运算
- Linux基础入门及系统管理01-bash脚本编程之三整数测试及算术运算18
- Linux shell的算术运算及算术扩展
- linux shell--算术运算
- linux Shell 算术运算 变量