Unix / Linux - Shell 內建數學函數
您好,有志於成為程序員的各位!今天,我們將踏上一段令人興奮的旅程,探索Unix/Linux Shell內建的數學函數世界。別擔心你對編程是新手——我會通過清晰的解釋和大量的示例來引導你走過每一步。讓我們一起來看看!
什麼是 Shell 內建函數?
在我們深入數學函數之前,讓我們先了解一下什麼是Shell內建函數。這些是內置於Shell本身的命令,意味著它們不需要另外安裝。它們總是隨時可用,準備幫助你高效地執行各種任務。
為什麼在 Shell 腳本中使用數學函數?
你可能會想,“我們為什麼需要在Shell腳本中使用數學?”想象一下,你正在編寫一個計算你每月預算或分析一些數據的腳本。這就是這些函數派上用場的地方!它們讓你能在Shell腳本中直接進行計算,節省你的時間和精力。
常見的 Shell 內建數學函數
讓我們探討一些在Unix/Linux Shell中最常使用的數學函數。我們將使用Bash Shell作為示例,因為它被廣泛使用並預裝在許多系統上。
1. 基本算術運算
Bash提供了多種方法來進行基本算術。讓我們來看看:
a. 使用 expr
命令
#!/bin/bash
a=10
b=5
sum=$(expr $a + $b)
echo "The sum of $a and $b is: $sum"
這個腳本將輸出:The sum of 10 and 5 is: 15
在這裡,expr
用於評估表達式 $a + $b
。結果然後存儲在變量 sum
中。
b. 使用雙重括號 (( ))
#!/bin/bash
a=10
b=5
((sum = a + b))
echo "The sum of $a and $b is: $sum"
這種方法更簡潔,通常在簡單的算術運算中被偏好。
2. 更複雜的數學運算
對於更複雜的計算,Bash提供了 bc
命令。雖然它不是嚴格意義上的內建函數,但它通常可用並非常有用。
#!/bin/bash
pi=$(echo "scale=2; 22/7" | bc)
echo "The value of pi (to 2 decimal places) is: $pi"
輸出:The value of pi (to 2 decimal places) is: 3.14
在這裡,scale=2
設定了小數位數,而 bc
執行除法。
常見數學運算表
這裡有一個方便的數學運算表,你可以在Bash中執行:
運算 | 符號 | 示例 |
---|---|---|
加法 | + | echo $((5 + 3)) |
減法 | - | echo $((10 - 4)) |
乘法 | * | echo $((6 * 7)) |
除法 | / | echo $((20 / 5)) |
取模(餘數) | % | echo $((17 % 3)) |
指數 | ** | echo $((2 ** 3)) |
高級數學函數
現在我們已經掌握了基礎知識,讓我們來探討一些更高级的數學函數。這些不是Bash本身的內建函數,但它們通過 bc
命令在Shell腳本中常被使用。
1. 平方根
#!/bin/bash
number=16
sqrt=$(echo "scale=2; sqrt($number)" | bc)
echo "The square root of $number is: $sqrt"
輸出:The square root of 16 is: 4.00
2. 正弦和餘弦
#!/bin/bash
angle=30
sin=$(echo "scale=4; s($angle * 3.14159 / 180)" | bc -l)
cos=$(echo "scale=4; c($angle * 3.14159 / 180)" | bc -l)
echo "The sine of $angle degrees is: $sin"
echo "The cosine of $angle degrees is: $cos"
輸出:
The sine of 30 degrees is: .4999
The cosine of 30 degrees is: .8660
注意 bc
的 -l
選項,它載入數學庫以進行三角函數計算。
實用範例:溫度轉換器
讓我們將我們新學到的知識應用在一個實用範例上——一個溫度轉換器!
#!/bin/bash
echo "Temperature Converter"
echo "1. Celsius to Fahrenheit"
echo "2. Fahrenheit to Celsius"
read -p "Enter your choice (1/2): " choice
case $choice in
1)
read -p "Enter temperature in Celsius: " celsius
fahrenheit=$(echo "scale=2; ($celsius * 9/5) + 32" | bc)
echo "$celsius°C is equal to $fahrenheit°F"
;;
2)
read -p "Enter temperature in Fahrenheit: " fahrenheit
celsius=$(echo "scale=2; ($fahrenheit - 32) * 5/9" | bc)
echo "$fahrenheit°F is equal to $celsius°C"
;;
*)
echo "Invalid choice"
;;
esac
這個腳本展示了我們如何在真實世界的情況中使用數學函數。它允許用戶在攝氏度和華氏度之間進行溫度轉換。
結論
恭喜你!你已經踏出了進入Shell腳本和數學函數世界的第一步。記住,熟能生巧。試著使用這些函數創建有自己特色的腳本——也許是一個計算器或一個數據分析腳本。
在你繼續编程之旅的過程中,你會發現這些基本的數學運算是構成更複雜計算的基礎。持續探索,持續學習,最重要的是,享受其中樂趣!
未來的科技巫師們,快樂編程!?????
Credits: Image by storyset