Shell函數
時間:2018-09-25 來源:未知
1、 函數定義
格式一:
function name()
{
Command sequence;
}
格式二:
name()
{
Command sequence);
}
1、()內是沒有參數的,他只是函數定義的固定格式。
2、第八行fun 是函數的調用(第一種方式)

2、 函數傳參
1、在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數…
2、當n>=10時,需要使用${n}來獲取參數。

3、 函數調用(第一種方式)
格式:
function_name arg1 arg2 …
1、調用函數時,直接寫函數名即可(第12行),參數則是寫在函數名的后面,用空格間隔
2、以這種直接調用函數的方式,只是將函數中的標準輸出打印出來,而返回值沒有打印出來(右圖為執行結果)。

4、 函數調用(第二種方式)
格式:
value_name=`function_name arg1 arg2 … `
echo“$value_name”
1、函數名及參數用按鍵esc下面的兩撇擴起來。
2、以這種方式調用函數(第11行),需定義一個用戶自定義變量去承接函數,即需要打印value_name里的值。
3、value_name內存放的不是函數的返回值,而是函數中所有標準輸出的結果,因此第12行echo “$ret”,也是只將函數中的標準輸出打印出來,而返回值依舊沒有被打印出來(右圖為執行結果)。

5、 打印函數的返回值
格式一:
function_name arg1 arg2 …
echo “$?”
格式二:
value_name=`function_name arg1 arg2 … `
echo “$?”
1、 使用$?打印函數的返回值。
2、 $?屬于系統預定義變量,代表上一條shell命令的返回值,因此在shell函數中,打印$?的結果,就是return的值。

(方式一)

(方式二)

