?? max2.sh
字號:
#!/bin/bash# max2.sh: 取兩個大整數中的最大值. # 這是前一個例子"max.sh"的修改版, #+ 這個版本可以比較兩個大整數. EQUAL=0 # 如果兩個值相等, 那就返回這個值. E_PARAM_ERR=-99999 # 沒有足夠多的參數傳遞給函數. # ^^^^^^ 任意超出范圍的參數都可以傳遞進來. max2 () # "返回"兩個整數中最大的那個. {if [ -z "$2" ]then echo $E_PARAM_ERR returnfiif [ "$1" -eq "$2" ]then echo $EQUAL returnelse if [ "$1" -gt "$2" ] then retval=$1 else retval=$2 fifiecho $retval # 輸出(到stdout), 而沒有用返回值. # 為什么? }return_val=$(max2 33001 33997)# ^^^^ 函數名# ^^^^^ ^^^^^ 傳遞進來的參數# 這其實是命令替換的一種形式: #+ 可以把函數看作為一個命令, #+ 然后把函數的stdout賦值給變量"return_val." # ========================= OUTPUT ========================if [ "$return_val" -eq "$E_PARAM_ERR" ] then echo "Error in parameters passed to comparison function!"elif [ "$return_val" -eq "$EQUAL" ] then echo "The two numbers are equal."else echo "The larger of the two numbers is $return_val."fi# ========================================================= exit 0# 練習:# -----# 1) 找到一種更優雅的方法, #+ 來測試傳遞給函數的參數. # 2) 簡化"輸出"段的if/then結構. # 3) 重寫這個腳本, 使其能夠從命令行參數中獲得輸入.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -