婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Shell中的函數、函數定義、作用域問題介紹

Shell中的函數、函數定義、作用域問題介紹

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

說起函數調用,相信大家也不會陌生,然而對于初學Shell的我來說,Shell中函數調用方式卻有點讓我不太習慣,自己也走了不少的彎路,因為傳遞參數時出了一個很“自然”的錯誤,也讓我吃了不少的苦頭,所以總結一下Shell中函數的調用方法。

一、Shell中函數的定義

為了方便程序和管理和模塊化并減少代碼的重復,函數的確是一個好東西。而Shell中函數的定義有兩種方法,如下:

復制代碼 代碼如下:

function fname()
{
    statements;
}


復制代碼 代碼如下:

fname()
{
    statements;
}

注意,()內是沒有參數的,它并不像C語言那樣,在()里可以有參數。

那大家可能就郁悶了,函數調用或多或少總是會需要一些參數,那么這些參數要怎么傳遞進來呢?其實參數傳遞方式為:fname;(不需要傳遞參數)或fname agr1 arg2(需要傳遞兩個參數);

二、自定義函數的例子

不知道大家的情況如何,反正一開始我就覺得很別扭,因為在C語言中,例如我定義一個函數int cmp(int a, int b),那么我就會在函數中使用到函數頭中聲明的變量a和b,而在Shell中卻沒有定義參數,那我的函數又需要用到這兩個參數,怎么辦好呢?下面就用一個例子來說明好了。

復制代碼 代碼如下:

#! /bin/bash 
# Filename:LoopPrint.sh 
 
function LoopPrint() 

    count=0; 
    while [ $count -lt $1 ]; 
    do 
    echo $count; 
    let ++count; 
    sleep 1; 
    done 
    return 0; 

 
read -p "Please input the times of print you want: " n; 
LoopPrint $n; 

先來說說這個程序的功能吧,就是輸入一個數字n,然后從0開始每隔1秒輸入一個數字,直到輸出n-1為止。首先,程序會要求你輸入一個數學,然后調用函數來進行輸出的功能。

注意注釋1的那一句,里面有一個變量$1,大家應該還記得調用函數時參數的傳遞方式,即fname agr1 arg2,這里的$1就是表示第一個參數,依此類推,$2就是第二個參數,$3就是第3個參數,$n就是表示第n個參數。

所以$1就是變量n的值。這樣說大家懂了吧!

補充一下,就是:

$0:是腳本本身的名字;
$#:是傳給腳本的參數個數;
$@:是傳給腳本的所有參數的列表,即被擴展為"$1" "$2" "$3"等;
$*:是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個,即被擴展成"$1c$2c$3",其中c是IFS的第一個字符;
$$:是腳本運行的當前進程ID號;
$?:是顯示最后命令的退出狀態,0表示沒有錯誤,其他表示有錯誤;

特別注意,傳遞參數時,(這個例子中)一定要寫成LoopPrint $n;而不能寫成LoopPrint n。為什么?例如你輸入的是20,則n的值($n)為20,前者表示的是把n的值,即20傳遞給函數LoopPrint,而后者則表示把字符n傳遞給函數LoopPrint。這點與在靜態語言中的函數參數傳遞是很不同的,因為在Shell中變量的使用并不需要先定義,所以要使用變量,讓Shell知道它是一個變量,并要傳遞它的值時,就是用$n,而不能直接用n,否則只把n當作一個字符來處理,而不是一個變量。

三、作用域問題

函數的作用域與C/C++語言中的作用約束是一樣的,函數的定義一定要出現在函數的調用語句之前,但是有一點跟C/C++中不一樣的就是變量的作用域問題,經過本人的試驗,在注釋1的語句改為while [ $count -lt $n ];也是可行的,即函數可以使用本文件中出現的任何變量,但是本人還是建議使用上面例子中的方法,即while [ $count -lt $1 ],并且不要隨意使用函數中的變量之外的變量,因為你并不一定知道你調用函數時函數外有什么變量存在也不知道它的值是什么,也不能保證別人在使用你的函數時會傳遞你在函數中使用到的變量名,如這里的n,別人在使用時可能傳遞的就是他自己定義的變量,如Count等。

您可能感興趣的文章:
  • Windows Powershell 定義函數
  • linux shell 自定義函數方法(定義、返回值、變量作用域)
  • Shell 函數參數

標簽:青島 朝陽 西藏 隨州 通遼 雅安 延邊 南充

巨人網絡通訊聲明:本文標題《Shell中的函數、函數定義、作用域問題介紹》,本文關鍵詞  Shell,中的,函數,定義,作用域,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell中的函數、函數定義、作用域問題介紹》相關的同類信息!
  • 本頁收集關于Shell中的函數、函數定義、作用域問題介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久www免费人成精品| 国产精品麻豆一区二区| 国产免费观看久久| 久久99国产乱子伦精品免费| 99热在这里有精品免费| 粉嫩嫩av羞羞动漫久久久| 精品视频1区2区| 性感美女极品91精品| 亚洲欧洲一区二区三区| 日韩精品中文字幕在线不卡尤物 | 亚洲一区二区三区精品在线| 国产精品亚洲第一区在线暖暖韩国 | 欧美性xxxxxxxx| 天天免费综合色| 亚洲精品va在线观看| 亚洲国产成人在线| 亚洲精品大片www| 日本一区中文字幕| 顶级嫩模精品视频在线看| 日本精品一区二区三区高清 | 国产a精品视频| 精品99一区二区三区| 亚洲国产中文字幕| 国产精品亚洲午夜一区二区三区| 中文字幕在线一区免费| 久久精品国产一区二区三区免费看| 久久久91精品国产一区二区三区| 91国产福利在线| 国产精品嫩草影院av蜜臀| 久久97超碰国产精品超碰| 国产精品丝袜91| 99久久精品国产精品久久| 国精产品一区一区三区mba视频| 日韩午夜激情电影| 国产精品素人一区二区| 99久久久久久99| 亚洲一区视频在线| 国产成人99久久亚洲综合精品| 亚洲一区二区三区影院| 亚洲小少妇裸体bbw| 亚洲成av人片| 日本一区中文字幕| 国产成人精品一区二区三区四区| 免费视频最近日韩| 久久99精品久久久久久国产越南| 亚洲高清在线视频| 美女视频黄 久久| 9久草视频在线视频精品| 久久久精品欧美丰满| 777久久久精品| www.66久久| 亚洲成av人**亚洲成av**| 国产成人免费在线| 精品福利一区二区三区 | 91精品国产综合久久国产大片 | 亚洲免费观看高清完整版在线观看| 日韩一区二区三区在线视频| 亚洲国产精品一区二区www在线| 老司机午夜精品| 国产三级一区二区三区| 奇米一区二区三区| kk眼镜猥琐国模调教系列一区二区| 欧美疯狂做受xxxx富婆| 在线看国产日韩| 久久免费看少妇高潮| 日韩电影在线免费看| 激情综合五月婷婷| 久久香蕉国产线看观看99| 精品影视av免费| 欧美亚洲图片小说| 国产精品传媒视频| 欧美高清你懂得| 亚洲一区二区中文在线| 欧美日韩不卡一区| 麻豆中文一区二区| 91香蕉国产在线观看软件| 麻豆精品久久久| 一区二区三国产精华液| 亚洲免费色视频| 亚洲国产精品久久人人爱 | 中文字幕av一区二区三区高| 国产在线播放一区三区四| 欧美在线高清视频| 日本不卡高清视频| 亚洲精品成人天堂一二三| 欧美一区二区女人| 7777精品伊人久久久大香线蕉的| 亚洲精品成人在线| 日韩欧美国产一区二区三区 | 亚洲男同1069视频| 99免费精品视频| 久久丁香综合五月国产三级网站| 亚洲一卡二卡三卡四卡| 久久精品这里都是精品| 欧美大白屁股肥臀xxxxxx| 在线观看日韩毛片| 久久综合九色综合欧美98| 视频一区在线播放| 久久99久国产精品黄毛片色诱| 日韩主播视频在线| 欧美午夜一区二区| 精品少妇一区二区三区日产乱码 | 麻豆精品一区二区av白丝在线| 亚洲综合色网站| 精品日韩成人av| 91久色porny | 日韩欧美国产综合一区| 国产999精品久久久久久| 中文字幕一区二区三区四区| 久久99深爱久久99精品| 亚洲免费资源在线播放| 久久久久高清精品| 日韩av一级片| 成人综合婷婷国产精品久久| 日韩欧美国产小视频| 久久影院视频免费| 国产suv一区二区三区88区| 中文字幕中文在线不卡住| 天天操天天综合网| 国产成人h网站| av在线不卡网| 久久久久97国产精华液好用吗| 欧美经典三级视频一区二区三区| 国产肉丝袜一区二区| 91丨porny丨最新| 欧美aaaaa成人免费观看视频| eeuss鲁片一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 97久久精品人人爽人人爽蜜臀| 日本道色综合久久| 欧美日韩小视频| 一区二区国产视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲激情自拍视频| 欧美视频日韩视频在线观看| 青青草97国产精品免费观看 | 亚洲激情一二三区| 欧美日韩视频在线一区二区| 欧美日韩高清影院| 亚洲三级在线免费| 不卡的av在线播放| 欧美性欧美巨大黑白大战| 欧美图区在线视频| 欧美日韩国产高清一区二区三区| 麻豆精品久久久| 日韩一区精品字幕| 国产精品美女久久久久久久久久久| 亚洲一区二区高清| 精品国产乱码久久久久久牛牛| 日韩av一级片| 欧美性猛片xxxx免费看久爱| 欧美亚洲高清一区二区三区不卡| 欧美国产精品一区二区三区| 国产偷国产偷亚洲高清人白洁| 国产一区二区在线看| 欧美日韩一卡二卡| 一区二区三区电影在线播| 91成人免费网站| 老司机精品视频在线| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人免费在线视频| 日韩一级高清毛片| 99久久99精品久久久久久| 欧美mv日韩mv国产| 2017欧美狠狠色| 久久久久久一二三区| 亚洲美女视频在线观看| 日韩欧美一级片| 奇米影视一区二区三区小说| 激情欧美一区二区| 亚洲午夜精品17c| 亚洲女同女同女同女同女同69| 国产白丝网站精品污在线入口| 5858s免费视频成人| 日韩三级视频在线观看| 日韩一区和二区| 91成人在线精品| 偷拍一区二区三区| 精品福利在线导航| 91浏览器入口在线观看| 亚洲精品一区二区三区99| 中文字幕av资源一区| 天天综合网 天天综合色| 欧美国产1区2区| 精品久久久久久久久久久久包黑料 | 一区二区三区四区在线免费观看| 欧美自拍丝袜亚洲| 日韩1区2区日韩1区2区| 亚洲欧美色图小说| 精品少妇一区二区三区免费观看 | 国产精品视频观看| 97se亚洲国产综合在线| 成人av手机在线观看| 日韩有码一区二区三区| 欧美国产精品v| 国产一区二区中文字幕| 人人狠狠综合久久亚洲| 国产农村妇女毛片精品久久麻豆| 欧美videossexotv100| 欧美成人精精品一区二区频|