亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

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

Shell中的函數(shù)、函數(shù)定義、作用域問題介紹

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

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

一、Shell中函數(shù)的定義

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

復制代碼 代碼如下:

function fname()
{
    statements;
}


復制代碼 代碼如下:

fname()
{
    statements;
}

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

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

二、自定義函數(shù)的例子

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

復制代碼 代碼如下:

#! /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; 

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

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

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

補充一下,就是:

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

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

三、作用域問題

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

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

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

巨人網(wǎng)絡通訊聲明:本文標題《Shell中的函數(shù)、函數(shù)定義、作用域問題介紹》,本文關鍵詞  Shell,中的,函數(shù),定義,作用域,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell中的函數(shù)、函數(shù)定義、作用域問題介紹》相關的同類信息!
  • 本頁收集關于Shell中的函數(shù)、函數(shù)定義、作用域問題介紹的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本伦理片网站| 成人a级高清视频在线观看| 美女免费毛片| 日本免费乱人伦在线观看| 日本伦理黄色大片在线观看网站| 国产亚洲精品aaa大片| 精品在线视频播放| 免费毛片播放| 国产成a人片在线观看视频| 91麻豆精品国产自产在线 | 沈樵在线观看福利| 日韩专区一区| 一级片免费在线观看视频| 欧美1区| 国产视频久久久| 亚洲爆爽| 91麻豆精品国产自产在线观看一区 | 四虎影视久久久免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天堂网中文在线| 美女免费毛片| 日本免费乱人伦在线观看| 欧美激情一区二区三区在线| 97视频免费在线观看| 九九热精品免费观看| 亚洲精品中文一区不卡| 99热精品在线| 免费一级片在线| 99色视频| 天天色色网| 99热视热频这里只有精品| 精品国产一区二区三区久久久狼| 欧美另类videosbestsex高清| 国产一区二区福利久久| 亚洲不卡一区二区三区在线| 精品国产亚洲人成在线| 日本在线不卡视频| 九九热国产视频| 欧美18性精品| 国产一区二区福利久久| 一级女性全黄久久生活片| 欧美a级v片不卡在线观看| 国产伦久视频免费观看视频| 精品在线视频播放| 欧美国产日韩精品| 天天做人人爱夜夜爽2020毛片| 麻豆午夜视频| 美女免费精品视频在线观看| a级精品九九九大片免费看| 成人影院一区二区三区| 精品国产一级毛片| 久久99爰这里有精品国产| 欧美a级v片不卡在线观看| 精品国产一区二区三区久久久狼| 精品视频在线看| 午夜激情视频在线播放| 成人免费高清视频| 九九干| 欧美激情伊人| 国产成人精品一区二区视频| 欧美国产日韩一区二区三区| a级精品九九九大片免费看| 久草免费在线视频| 精品在线观看一区| 精品国产亚洲人成在线| 免费一级片在线| 成人a大片在线观看| 韩国毛片| 国产国语对白一级毛片| 国产a视频| 国产麻豆精品免费视频| 久草免费在线观看| 日韩专区一区| 九九干| 午夜激情视频在线观看| 欧美爱爱动态| 日韩欧美一二三区| 国产精品免费精品自在线观看| 色综合久久天天综线观看| 可以免费看污视频的网站| 欧美α片无限看在线观看免费| 午夜欧美成人香蕉剧场| 四虎影视库| 午夜欧美成人久久久久久| 国产一区免费在线观看| 免费的黄视频| 亚飞与亚基在线观看| 999精品视频在线| 四虎影视久久久| 九九久久国产精品大片| 色综合久久久久综合体桃花网| 999精品在线| 黄视频网站免费观看| 欧美18性精品| 久久99中文字幕| 91麻豆tv| 久久精品店| 欧美1区2区3区| 亚洲第一页色| 国产高清在线精品一区a| 国产91精品露脸国语对白| 一级毛片视频免费| 国产麻豆精品免费视频| 日韩在线观看免费| 免费的黄色小视频| 日韩中文字幕一区二区不卡| 日韩中文字幕在线播放| 黄视频网站免费看| 日本特黄特黄aaaaa大片| 九九热精品免费观看| 精品国产一区二区三区久久久蜜臀 | 日韩免费在线| 久久精品免视看国产明星 | 香蕉视频亚洲一级| 国产不卡在线看| 欧美国产日韩一区二区三区| 日韩免费在线| 日韩综合| 日韩在线观看免费完整版视频| 国产一区二区福利久久| 午夜欧美成人久久久久久| 国产一区二区精品在线观看| 色综合久久天天综线观看| 精品在线免费播放| 日本免费乱人伦在线观看| 91麻豆精品国产片在线观看| 国产一区二区精品| 久久国产精品只做精品| 欧美日本免费| 国产韩国精品一区二区三区| 国产亚洲免费观看| 国产福利免费观看| 国产视频一区在线| 欧美另类videosbestsex久久 | 国产一区二区精品| 日本在线播放一区| 999精品影视在线观看| 国产网站免费观看| 青青青草影院| 精品视频在线看| 欧美电影免费看大全| 欧美另类videosbestsex视频 | 成人在激情在线视频| 日韩男人天堂| 中文字幕一区二区三区 精品| 欧美激情一区二区三区在线| 亚洲精品影院一区二区| 天天做人人爱夜夜爽2020毛片| 国产伦久视频免费观看视频| 欧美一区二区三区在线观看| 日韩av片免费播放| 国产91丝袜高跟系列| a级精品九九九大片免费看| 日韩免费在线| 亚洲女初尝黑人巨高清在线观看| 一级毛片视频在线观看| 国产一区二区精品久| 国产成a人片在线观看视频 | 99热精品在线| 国产成a人片在线观看视频| 沈樵在线观看福利| 99久久精品国产免费| 国产高清在线精品一区a| 国产成人啪精品视频免费软件| 久久99中文字幕| 欧美18性精品| 国产成人啪精品| 国产91精品系列在线观看| 久久国产精品自线拍免费| 黄色免费三级| 欧美激情一区二区三区在线播放 | 国产国语对白一级毛片| 色综合久久天天综线观看| 国产麻豆精品高清在线播放| 国产网站免费| 亚洲天堂在线播放| 午夜久久网| 一本高清在线| 国产不卡在线看| 精品毛片视频| 九九精品久久久久久久久| 久久国产精品自由自在| 午夜家庭影院| 九九九网站| 精品在线观看国产| 99久久精品国产高清一区二区| 黄色福利片| 日韩一级黄色大片| 国产极品白嫩美女在线观看看| 免费毛片基地| 精品视频一区二区| 日本免费乱人伦在线观看| 国产91视频网| 久久精品道一区二区三区| 二级片在线观看| 久久久久久久久综合影视网| 亚洲爆爽| 精品视频免费在线| 九九九在线视频| 欧美另类videosbestsex|