bash学习之表达式运用和函数(五)

数学运算在写的时候是一个必不可少的内容,但是在bash中多有的变量默认都是字符串。因此,需要一些特殊的方法进行数学运算。

1.bash的数学运算
bash用想要进行数学运算,一共有三种方法,expr ,let ,(())
expr 返回一个表达是的右值,let,和(())实现了让数学计算可高级语言一样的功能

#!/bin/bash
#数学运算
var1=1
var2=12
#var=`expr $var1 + $var2`
let var=var1+var2
echo $var
echo `expr $var1 + $var2`
((var_n=var1+var2))
echo $var_n

运行结果:
在这里插入图片描述
expr用的时候必须用$引用来说明是当下的值,并且运算符的左右两侧都要有空格,* 运算的花必许用\进行转义说明
let和(()) 实现了和高级语法中一样的方法让,但是他们中的数学运算符两侧不能够 有空格。
另外 bc 是数学运算中的一种高级的数学运算,可以实现浮点数类型的运算,并且可以实现一些数学函数,bc的运用一般用管道符|放在后面,前面表达式用双引号括起来
程序2:

#!/bin/bash
#select语句用法
var1=2.2
var2=12
c=`echo "$var1*$var2"|bc`
echo $c
var3=100
echo "sqrt($var3)"|bc
echo "$var3^2"|bc

运行结果:
在这里插入图片描述
管道符和引号之间呢有空格,第一个值输两个浮点数的乘积,第二个数是开根好,第三个数是平方

2.bash中的函数
函数也是我们编写程序必不可少的一个功能,bash也有自己风格的函数写法,有两种形式

function name
{
	#函数体
}
name()
{
	#函数体
}

bash的函数也可传递参数,可以在函数的后面添加参数的形式传递进去,在函数体没表示的时候用标准的参数表式发进行表示$+数字
bash中变量的创建一般都是全局变量,整个程序都能够用的。因此,修改,创建变量的是后要特别注意可能出现的错误,当发现进需要在一定的范围内用的变量的话,可以用关键子local生命一个本地变量
函数可以用return来说明函数到了某一个位置后直接退出函数,默认函数的退出值是0,如果非正常完成函数则会返回一个非0的值。这里和高级语法的用法是一样的。在外面的主程序中的返回要用exit进行退出。
注意:这里shell 和bash出现了差异,sh +文件名 运行bash文件的话会不认function这个关键字,这是候要用 bash +文件名 去运行

#!/bin/bash
#bash函数的运用
var=10
function fun1
{
	var=20
	echo 这是函数1
	echo 函数1收到的参数有   $#
	echo $0 $1	
}
fun2()
{
	local var=30
	echo 这是函数2
	echo "local var= "$var
}
echo "var= "$var
fun1
fun1 "12"
echo "var= "$var
fun2
echo "var= "$var

运行结果:
在这里插入图片描述
可以看到,加完local关键子后,生命的变量就变成了本地变量,而未加的默认变量则是一个全局变量,函数传递参数类似与命令行传递参数的方法进行传递,而引用的方法也是和命令行中参数引用的方法一样。

bash有关高级语言中常用的一些方法就到这里,下面的章节将会讲述bash中与系统相管的一些高级用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值