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中與系統相管的一些高級用法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章