详解Shell编程之变量数值计算(一)

2019-09-23 08:59:15丽君

案例:在变量前后使用++、--、特殊运算符的表达式

首先我们需要知道++是什么意思

++、-- :表示着增加或者减少,它可以放在前置,也可以放在变量的结尾

[root@shell-yankerp sh]# a=10 
[root@shell-yankerp sh]# echo $((a++)) 
10 
[root@shell-yankerp sh]# echo $a 
11 
[root@shell-yankerp sh]# 

以上内容中的a=10 那么a是变量名 变量值等于10 那么echo $((a++)) ++的意思上面已经说过了,输出结果为10 因为++在a的后面 所以先输出a的值为10 那么继续echo $a 那么就变成11 因为a++后面增加1

例2:

[root@shell-yankerp sh]# a=11 
[root@shell-yankerp sh]# echo $((a--)) 
11 
[root@shell-yankerp sh]# echo $a 
10 
[root@shell-yankerp sh]# 

以上就是--的用法了。这里不在说了

在以下的案例中我相信的大家肯定知道了在前面加++ 和在后面加++的区别了 如下:

[root@shell-yankerp sh]# echo $a 
10 
[root@shell-yankerp sh]# echo $((--a)) 
9 
[root@shell-yankerp sh]# a=9 
[root@shell-yankerp sh]# echo $a 
9 
[root@shell-yankerp sh]# echo $((++a)) 
10 
[root@shell-yankerp sh]# 

例:通过(())运算后赋值给变量

[root@shell-yankerp sh]# yankerp=99 
[root@shell-yankerp sh]# echo $((yankerp+1)) 
100 
[root@shell-yankerp sh]# echo $(( yankerp+1 )) 
100 
[root@shell-yankerp sh]# 

在以上的案例中,有空格和没空格都是一样的。

包含(())各种常见的运算符命令执行如下:

[root@shell-yankerp sh]# echo $((3+2)) 
5 
[root@shell-yankerp sh]# echo $((3-2)) 
1 
[root@shell-yankerp sh]# echo $((3**2)) 
9 
[root@shell-yankerp sh]# echo $((3*2))  
6 
[root@shell-yankerp sh]# echo $((3/2)) 
1 
[root@shell-yankerp sh]# echo $((3%2)) 
1 
[root@shell-yankerp sh]# 

各种(())运算的shell脚本案例

#!/bin/bash 
# DATE:Wed Jan 31 19:49:59 CST 2018 
# This is a yankerp! 
 
a=6 
b=3 
echo "a-b=$((a-b))" 
echo "a+b=$((a+b))" 
echo "a/b=$((a/b))" 
echo "a**b=$((a**b))" 

输出结果为如下:

[root@shell-yankerp sh]# sh test.sh  
a-b=3 
a+b=9 
a/b=2 
a**b=216 
[root@shell-yankerp sh]#  

特殊位置变量+数值运算实战案例如下:

#!/bin/bash 
# DATE:Wed Jan 31 19:49:59 CST 2018 
# This is a yankerp! 
 
a=$1 
b=$2 
echo "a-b=$((a-b))" 
echo "a+b=$((a+b))" 
echo "a**b=$((a**b))" 
echo "a/b=$((a/b)) 

在以上的脚本中 我们定义了特殊的位置变量 下面定义了数值运算,那么这个脚本的功能是,当我们输入两个字符,其中第一个字符赋值给了变量a 第二个字符赋值给了变量b 那么在下面进行数值运算,如果此脚本看不懂的大家可以参考我这篇文章//www.jb51.net/article/134246.htm