當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Shell函數(shù)
1、 函數(shù)定義
格式一:
function name()
{
Command sequence;
}
格式二:
name()
{
Command sequence);
}
1、()內(nèi)是沒有參數(shù)的,他只是函數(shù)定義的固定格式。
2、第八行fun 是函數(shù)的調(diào)用(第一種方式)
2、 函數(shù)傳參
1、在Shell中,調(diào)用函數(shù)時(shí)可以向其傳遞參數(shù)。在函數(shù)體內(nèi)部,通過 $n 的形式來獲取參數(shù)的值,例如,$1表示第一個(gè)參數(shù),$2表示第二個(gè)參數(shù)…
2、當(dāng)n>=10時(shí),需要使用${n}來獲取參數(shù)。
3、 函數(shù)調(diào)用(第一種方式)
格式:
function_name arg1 arg2 …
1、調(diào)用函數(shù)時(shí),直接寫函數(shù)名即可(第12行),參數(shù)則是寫在函數(shù)名的后面,用空格間隔
2、以這種直接調(diào)用函數(shù)的方式,只是將函數(shù)中的標(biāo)準(zhǔn)輸出打印出來,而返回值沒有打印出來(右圖為執(zhí)行結(jié)果)。
4、 函數(shù)調(diào)用(第二種方式)
格式:
value_name=`function_name arg1 arg2 … `
echo“$value_name”
1、函數(shù)名及參數(shù)用按鍵esc下面的兩撇擴(kuò)起來。
2、以這種方式調(diào)用函數(shù)(第11行),需定義一個(gè)用戶自定義變量去承接函數(shù),即需要打印value_name里的值。
3、value_name內(nèi)存放的不是函數(shù)的返回值,而是函數(shù)中所有標(biāo)準(zhǔn)輸出的結(jié)果,因此第12行echo “$ret”,也是只將函數(shù)中的標(biāo)準(zhǔn)輸出打印出來,而返回值依舊沒有被打印出來(右圖為執(zhí)行結(jié)果)。
5、 打印函數(shù)的返回值
格式一:
function_name arg1 arg2 …
echo “$?”
格式二:
value_name=`function_name arg1 arg2 … `
echo “$?”
1、 使用$?打印函數(shù)的返回值。
2、 $?屬于系統(tǒng)預(yù)定義變量,代表上一條shell命令的返回值,因此在shell函數(shù)中,打印$?的結(jié)果,就是return的值。
(方式一)
(方式二)