#!/bin/bash
# 算術測試.
# (( ... ))結構可以用來計算并測試算術表達式的結果.
# 退出狀态将會與[ ... ]結構完全相反!
(( 0 ))
echo "Exit status of \"(( 0 ))\" is $?." # 1
(( 1 ))
echo "Exit status of \"(( 1 ))\" is $?." # 0
(( 5 > 4 )) # 真
echo "Exit status of \"(( 5 > 4 ))\" is $?." # 0
(( 5 > 9 )) # 假
echo "Exit status of \"(( 5 > 9 ))\" is $?." # 1
(( 5 - 5 )) # 0
echo "Exit status of \"(( 5 - 5 ))\" is $?." # 1
(( 5 / 4 )) # 除法也可以.
echo "Exit status of \"(( 5 / 4 ))\" is $?." # 0
(( 1 / 2 )) # 除法的計算結果 echo "Exit status of \"(( 1 / 2 ))\" is $?." # 截取之後的結果為 0.
# 1
(( 1 / 0 )) 2>/dev/null # 除數為0, 非法計算.
# ^^^^^^^^^^^
echo "Exit status of \"(( 1 / 0 ))\" is $?." # 1
# "2>/dev/null"起了什麼作用?
# 如果這句被删除會怎樣?
# 嘗試删除這句, 然後在運作這個腳本.
exit 0
======================
[email protected] ~/yang # ./calucate.sh
Exit status of "(( 0 ))" is 1.
Exit status of "(( 1 ))" is 0.
Exit status of "(( 5 > 4 ))" is 0.
Exit status of "(( 5 > 9 ))" is 1.
Exit status of "(( 5 - 5 ))" is 1.
Exit status of "(( 5 / 4 ))" is 0.
Exit status of "(( 1 / 2 ))" is 1.
Exit status of "(( 1 / 0 ))" is 1.
[email protected] ~/yang #