亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

linux shell自定義函數(定義、返回值、變量作用域)介紹

2020-07-27 19:25:28
字體:
來源:轉載
供稿:網友

linux shell 可以用戶定義函數,然后在shell腳本中可以隨便調用。下面說說它的定義方法,以及調用需要注意那些事項。

一、定義shell函數(define function)

語法:

[ function ] funname [()]

{

action;

[return int;]

}

說明:

  • 1、可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數。
  • 2、參數返回,可以顯示加:return 返回,如果不加,將以最后一條命令運行結果,作為返回值。 return后跟數值n(0-255

實例(testfun1.sh):

#!/bin/sh fSum 3 2; function fSum() {   echo $1,$2;   return $(($1+$2)); } fSum 5 7; total=$(fSum 3 2); echo $total,$?;sh testfun1.shtestfun1.sh: line 3: fSum: command not found5,73,215

從上面這個例子我們可以得到幾點結論:

  • 1、必須在調用函數地方之前,聲明函數,shell腳本是逐行運行。不會像其它語言一樣先預編譯。一次必須在使用函數前先聲明函數。
  • 2、total=$(fSum 3 2); 通過這種調用方法,我們清楚知道,在shell 中 單括號里面,可以是:命令語句。 因此,我們可以將shell中函數,看作是定義一個新的命令,它是命令,因此 各個輸入參數直接用 空格分隔。 一次,命令里面獲得參數方法可以通過:$0…$n得到。 $0代表函數本身。
  • 3、函數返回值,只能通過$? 系統變量獲得,直接通過=,獲得是空值。其實,我們按照上面一條理解,知道函數是一個命令,在shell獲得命令返回值,都需要通過$?獲得。

二、函數作用域,變量作用范圍

先我們看一個實例(testfun2.sh ):

#!/bin/shecho $(uname);declare num=1000;uname(){  echo "test!";  ((num++));  return 100;}testvar(){  local num=10;  ((num++));  echo $num;}uname;echo $?echo $num;testvar;echo $num;sh testfun2.shLinuxtest!1001001111001

我們一起來分析下上面這個實例,可以得到如下結論:

  • 1、定義函數可以與系統命令相同,說明shell搜索命令時候,首先會在當前的shell文件定義好的地方查找,找到直接執行。
  • 2、需要獲得函數值:通過$?獲得
  • 3、如果需要傳出其它類型函數值,可以在函數調用之前,定義變量(這個就是全局變量)。在函數內部就可以直接修改,然后在執行函數就可以讀出修改過的值。
  • 4、如果需要定義自己變量,可以在函數中定義:local 變量=值 ,這時變量就是內部變量,它的修改,不會影響函數外部相同變量的值 。

這些,是我在工作中,對linux ,shell 函數使用一些經驗總結,有沒有提到地方,歡迎交流!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩激情视频| 久久久999精品免费| 欧美日韩国产一区二区| 欧美日韩国产成人高清视频| 久久精品国产欧美亚洲人人爽| 久久亚洲精品小早川怜子66| 国产精品一区二区三区免费视频| 欧美一区三区三区高中清蜜桃| 精品福利免费观看| 欧美日韩一区免费| 欧美片一区二区三区| www.欧美精品一二三区| 亚洲丁香婷深爱综合| 国产成人鲁鲁免费视频a| 这里只有精品久久| 亚洲精品国产拍免费91在线| 一本大道香蕉久在线播放29| 久久99精品久久久久久青青91| 日韩专区在线观看| 久久影院资源站| 中文字幕亚洲一区二区三区五十路| 国产精品久久久久久亚洲影视| 日韩av有码在线| 欧美床上激情在线观看| 精品视频在线导航| 国产成人+综合亚洲+天堂| 日韩精品极品视频免费观看| 国产丝袜一区二区三区| 在线视频欧美性高潮| 精品亚洲国产成av人片传媒| 懂色av一区二区三区| 57pao成人永久免费视频| 国产精品人人做人人爽| 精品视频在线播放| 一区二区亚洲精品国产| 精品久久香蕉国产线看观看亚洲| 欧美成人午夜影院| 国产欧美精品在线| 欧美日韩亚洲一区二| 日韩欧美在线视频日韩欧美在线视频| 国产女同一区二区| 国产一区二区三区在线播放免费观看| 国产精品一二区| 2021久久精品国产99国产精品| 亚洲va久久久噜噜噜久久天堂| 欧美专区在线观看| 久久久久久久久综合| 欧美中文字幕精品| 91精品免费看| 国产精品久久久久久久久久ktv| 久久精品国产亚洲精品| 精品久久在线播放| 亚洲综合色av| 欧美在线视频观看免费网站| 久久久免费观看视频| 亚洲自拍欧美色图| 成人黄色在线观看| 欧美激情一级精品国产| 亚洲欧美制服第一页| 国产成人精品一区| 精品亚洲一区二区三区| 日韩一区av在线| 亚洲片在线观看| 欧美色视频日本版| 日韩av影院在线观看| 欧美日韩激情网| 欧美日韩国产精品| 欧美精品videos| 色777狠狠综合秋免鲁丝| 欧美夫妻性生活视频| 日韩精品久久久久久福利| 亚洲欧美国产精品久久久久久久| 亚洲电影在线观看| 国产aaa精品| 欧美乱人伦中文字幕在线| 日韩av免费网站| 美女精品久久久| 亚洲精品v欧美精品v日韩精品| 国内精品在线一区| 欧美电影免费观看| 久久精品色欧美aⅴ一区二区| 91久久精品国产91久久| 97视频在线观看成人| 色老头一区二区三区在线观看| 久久香蕉国产线看观看网| 国产一区二区黑人欧美xxxx| 欧美成人在线网站| 国产精品久久久久久影视| 最近2019中文免费高清视频观看www99| 成人国产精品日本在线| 欧美成人午夜剧场免费观看| 久久久精品中文字幕| 丝袜美腿精品国产二区| 国产亚洲精品美女久久久久| 欧洲成人在线观看| 国产有码在线一区二区视频| 久久久久久一区二区三区| 久久久久久久久91| 国产精品电影久久久久电影网| 亚洲xxxxx性| 日韩精品免费在线视频| 亚洲精品乱码久久久久久按摩观| 91久久夜色精品国产网站| 最近2019年好看中文字幕视频| 欧美在线亚洲一区| 91国产高清在线| 久久亚洲精品小早川怜子66| 亚洲性av网站| 富二代精品短视频| 日韩av在线免费观看一区| 久久人人97超碰精品888| 在线观看中文字幕亚洲| 色婷婷久久一区二区| 欧美一级电影免费在线观看| 裸体女人亚洲精品一区| 亚洲色图国产精品| 欧美有码在线视频| 97超级碰碰碰久久久| 欧美一区深夜视频| 日韩美女免费观看| 国内外成人免费激情在线视频网站| 日韩免费观看网站| www.日韩免费| 欧美视频在线观看免费| 性欧美亚洲xxxx乳在线观看| 亚洲最大的成人网| 亚洲肉体裸体xxxx137| 亚洲区bt下载| 国产中文欧美精品| 亚洲精品在线91| 亚洲精品国产精品国自产在线| 中文字幕日韩精品有码视频| 日本一本a高清免费不卡| 亚洲激情在线视频| 中文字幕一区二区三区电影| 日韩有码视频在线| 国产精品成人国产乱一区| 97视频国产在线| 青青青国产精品一区二区| 日韩一区二区欧美| 另类少妇人与禽zozz0性伦| 久久亚洲精品一区二区| 欧美成人自拍视频| 久久国产精品久久久久久久久久| 欧美激情中文字幕乱码免费| 成人信息集中地欧美| 亚洲第一福利视频| 日韩欧美在线中文字幕| 久久久久久69| 久久视频中文字幕| 亚洲色图av在线| 亚洲视频自拍偷拍| 久久久久999| 国产欧美亚洲精品| 在线观看亚洲视频| 日韩美女视频在线观看| 夜夜嗨av一区二区三区免费区| 亚洲欧美成人在线| 最近的2019中文字幕免费一页| 在线观看久久av| 一区二区三区日韩在线| 欧美精品成人91久久久久久久| 亚洲福利在线看| 成人av在线网址|