Unix / Linux - Shell 內建數學函數

您好,有志於成為程序員的各位!今天,我們將踏上一段令人興奮的旅程,探索Unix/Linux Shell內建的數學函數世界。別擔心你對編程是新手——我會通過清晰的解釋和大量的示例來引導你走過每一步。讓我們一起來看看!

Unix / Linux - Builtin Functions

什麼是 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