欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年07月29日 09:21:59   投稿:junjie  
這篇文章主要介紹了shell自定義函數(shù)的6個(gè)特點(diǎn)總結(jié),也是使用shell自定義函數(shù)的一些注意事項(xiàng)總結(jié),以及小技巧介紹,需要的朋友可以參考下

最近系統(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引用的思想差不多,但是形勢不一樣。
2,shell函數(shù)的返回值,只能是整形,并且在0-257之間。
3,在方法定義的變量,如果沒有做特別聲明,一般都是局部變量,而shell正好相反,局部變量要特別聲明。
4,調(diào)用方法和取得返回值之間,不能有任何操作,不然取不到return的值。

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

相關(guān)文章

  • linux lsof命令詳解及實(shí)例

    linux lsof命令詳解及實(shí)例

    這篇文章主要介紹了linux lsof命令詳解的相關(guān)資料,lsof是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具,這里詳細(xì)介紹如何使用,需要的朋友可以參考下
    2017-03-03
  • shell數(shù)組操作簡明總結(jié)

    shell數(shù)組操作簡明總結(jié)

    這篇文章主要介紹了shell數(shù)組操作總結(jié),這里包括數(shù)組的聲明、訪問、復(fù)制、計(jì)算、刪除、替換等操作,需要的朋友可以參考下
    2014-05-05
  • shell腳本一鍵安裝php7的實(shí)例(推薦)

    shell腳本一鍵安裝php7的實(shí)例(推薦)

    下面小編就為大家?guī)硪黄猻hell腳本一鍵安裝php7的實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • linux Shell腳本里面把一個(gè)數(shù)組傳遞到awk內(nèi)部進(jìn)行處理

    linux Shell腳本里面把一個(gè)數(shù)組傳遞到awk內(nèi)部進(jìn)行處理

    這篇文章主要介紹了linux Shell腳本里面把一個(gè)數(shù)組傳遞到awk內(nèi)部進(jìn)行處理,需要的朋友可以參考下
    2016-12-12
  • shell腳本轉(zhuǎn)發(fā)80端口數(shù)據(jù)包給Node.js服務(wù)器

    shell腳本轉(zhuǎn)發(fā)80端口數(shù)據(jù)包給Node.js服務(wù)器

    開發(fā)基于Node.js的WEB應(yīng)用很方便,但是服務(wù)端口問題很蛋疼,由于Linux內(nèi)核規(guī)定普通用戶只能使用大于1024的端口號,所以使用普通用戶運(yùn)行Node.js服務(wù)就不能監(jiān)聽80端口
    2014-03-03
  • Linux下壓縮與解壓命令詳解

    Linux下壓縮與解壓命令詳解

    這篇文章主要為大家詳細(xì)介紹了Linux下壓縮與解壓縮命令,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 詳解bash中的退出狀態(tài)機(jī)制

    詳解bash中的退出狀態(tài)機(jī)制

    這篇文章主要介紹了詳解bash中的退出狀態(tài)機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • linux下開啟php的sockets擴(kuò)展支持實(shí)例

    linux下開啟php的sockets擴(kuò)展支持實(shí)例

    下面小編就為大家?guī)硪黄猯inux下開啟php的sockets擴(kuò)展支持實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 判斷Linux Shell環(huán)境變量是否存在

    判斷Linux Shell環(huán)境變量是否存在

    這篇文章主要介紹了Linux Shell 判斷環(huán)境變量是否存在的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • linux定時(shí)器crontab的使用教程

    linux定時(shí)器crontab的使用教程

    這篇文章主要介紹了linux定時(shí)器crontab的使用教程,需要的朋友可以參考下
    2018-08-08

最新評論