天天看點

【shell 腳本】算術測試需要使用(( ))

#!/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 #