主頁 > 知識(shí)庫 > shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié)

shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié)

熱門標(biāo)簽:佛山高德地圖標(biāo)注中心 excel地址地圖標(biāo)注 杭州機(jī)器人外呼系統(tǒng) 地圖標(biāo)注超出范圍怎么辦 東莞電銷機(jī)器人價(jià)格一覽表 百度地圖的地圖標(biāo)注 陜西電銷卡外呼系統(tǒng)怎么安裝 旅游地圖標(biāo)注大全 百度地圖標(biāo)注圖標(biāo)更換

最近系統(tǒng)的學(xué)習(xí)了一下shell的函數(shù),總體感覺根其他語言的函數(shù)差不多,不過它也有自身的特點(diǎn)

一,調(diào)用函數(shù)必須在定義函數(shù)的后,不然會(huì)報(bào)錯(cuò)的

復(fù)制代碼 代碼如下:

fun

fun (){
 echo "aaaaaa"
}

fun

返回結(jié)果如下:

復(fù)制代碼 代碼如下:

[root@krlcgcms01 mytest]# sh fun.sh
 fun.sh: line 1: fun: command not found       //第一次調(diào)用fun是報(bào)錯(cuò)的,fun沒有定義
 aaaaaa                                       //第二次調(diào)用fum顯示的結(jié)果

如果是php或者是javascript的話,就不會(huì)出現(xiàn)這樣的問題

二,向shell函數(shù)傳遞參數(shù)很有特點(diǎn)

復(fù)制代碼 代碼如下:

fun2 (){
 echo $0                      //$0本身文件名
 if [ $1 ]                    //參數(shù)為什么都是從$1開始呢,$0是本身文件名
 then
 echo "param1 is "$1
 else
 echo "param1 is null"
 fi
 if [ $2 ]
 then
 echo "param2 is "$2
 fi
}

fun2 aaa bbb                 //向fun2傳2個(gè)參數(shù)
fun2 ccc                     //向fun2傳1個(gè)參數(shù)
fun2                         //不傳參數(shù)

返回結(jié)果如下:

復(fù)制代碼 代碼如下:

[root@krlcgcms01 mytest]# sh fun2.sh
pa.sh                     //第一次調(diào)用fun2,顯示$0的值
param1 is aaa
param2 is bbb
pa.sh                     //第二次調(diào)用fun2,顯示$0的值
param1 is ccc
pa.sh                     //第三次調(diào)用fun2,顯示$0的值
param1 is null

這樣的傳參方式,很特別吧。

三,引用舉例

復(fù)制代碼 代碼如下:

reference ()
 {
 pa=\$"$1"                      //$1顯示的是param
 echo $pa                       //顯示的是$param
 x=`eval "expr $pa "`           //x為test
 echo $1=$x                     //param=test
 local aaa=$x                   //定義局部變量
 bbb=$x                         //默認(rèn)全局變量
 eval "$1='test been modified'"
 return 1   //最大返回整數(shù)257
 }

param="test"
echo $param " is test"

reference param
return_value=$?                  //返回值存放在$?里面
echo "return value is " $return_value
echo $param " is not test"

return_value=$?
echo "return value is " $return_value

echo "aaa = "$aaa      //局部變量外面不能調(diào)用
echo "bbb = "$bbb

返回結(jié)果如下:

復(fù)制代碼 代碼如下:

[zhangy@localhost zhangy]$ sh re.sh
test  is test
$param
param=test
return value is  1
test been modified  is not test
return value is  0
aaa =
bbb = test

從上面的這個(gè)例子,我總結(jié)以下幾點(diǎn):

1,傳引用也挺特別的,function  max($num_a,$num_b){}如果方法體中$num_a改變了的話,調(diào)用的變量也會(huì)改變。shell引用的思想差不多,但是形勢(shì)不一樣。
2,shell函數(shù)的返回值,只能是整形,并且在0-257之間。
3,在方法定義的變量,如果沒有做特別聲明,一般都是局部變量,而shell正好相反,局部變量要特別聲明。
4,調(diào)用方法和取得返回值之間,不能有任何操作,不然取不到return的值。

結(jié)合前二個(gè)例子顯示的特點(diǎn),差不多有6個(gè)特點(diǎn),肯定還有其他的一些特性,待大家補(bǔ)充。

您可能感興趣的文章:
  • linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹
  • shell自定義函數(shù)及參數(shù)調(diào)用解析

標(biāo)簽:朝陽 南充 通遼 西藏 青島 隨州 雅安 延邊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié)》,本文關(guān)鍵詞  shell,自定義,函數(shù),的,6個(gè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章