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

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

运行结果如下:

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

这也就是特殊位置变量+本章的变量数值运算的结合

let运算命令的用法

例如

[root@shell-yankerp ~]# a=2   
[root@shell-yankerp ~]# a=a+8  #没有用let 
[root@shell-yankerp ~]# echo $a 
a+8  #输出结果 
[root@shell-yankerp ~]# unset a #清除变量  
[root@shell-yankerp ~]# a=2 
[root@shell-yankerp ~]# let a=a+8 使用let 
[root@shell-yankerp ~]# echo $a 
10 
[root@shell-yankerp ~]# 

其实还可以这么实现,如下:

[root@shell-yankerp ~]# a=2 
[root@shell-yankerp ~]# echo $((a=a+8)) 
10 
[root@shell-yankerp ~]# echo $a 
10 
[root@shell-yankerp ~]# unset a 
[root@shell-yankerp ~]# a=2 
[root@shell-yankerp ~]# let a=a+8 
[root@shell-yankerp ~]# echo $a 
10 
[root@shell-yankerp ~]#  

两者区别!!!如上

expr命令用法实例:

[root@shell-yankerp sh]# expr 2 + 2 
4 
[root@shell-yankerp sh]# expr 4 - 2 
2 
[root@shell-yankerp sh]# expr 4 * 2 
8 
[root@shell-yankerp sh]# expr 4 / 2  
2 
[root@shell-yankerp sh]#  

当我们选择用*号需要拿转义、需要注意在用expr命令时 左右两侧必须要空格

2、expr配合变量实例

[root@shell-yankerp sh]# a=10 
[root@shell-yankerp sh]# a=`expr $a + 10` 
[root@shell-yankerp sh]# echo $a 
20 
[root@shell-yankerp sh]# 

expr的企业级实战案例:

[root@shell-yankerp sh]# i=5  #这里设置了一个变量 i=5 
[root@shell-yankerp sh]# expr $i + 6 &>/dev/null  #那么我们使用expr命令 $i + 6 这里的6是一个整数 
[root@shell-yankerp sh]# echo $?  #执行完成后我们使用特殊变量 $?来判断以上命令 
0     ---返回结果为0 
[root@shell-yankerp sh]# expr $i + zhangsan &>/dev/null #同时这里又设置了一个变量 在这里的zhangsan是字符串 
[root@shell-yankerp sh]# echo $?    #使用特殊变量判断 
2   #结果为2  
[root@shell-yankerp sh]#  

利用expr做计算,将一个未知的变量和一个已知的一个整数相加,看返回的值是否为0,如果默认是0 那么就是一个整数。如果非0则输入的就是字符串不是整数。

例:通过参数判断输出内容是否为整数

#!/bin/bash 
expr $1 + 1 &>/dev/null  #这里是一个命令 使用了expr 也使用了特殊的位置变量 
if [ "$?" -eq 0 ]     #如果以上命令执行结果为0  
 then      #那么 
  echo "输入的是整数~"  #输出一条 输入的是整数 
 else   #否则 
  echo "/bin/sh $# 请输入一个整数"   这里也使用了特殊的位置变量 
fi 

运行脚本测试