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

主頁 > 知識庫 > linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)

linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)

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

一、定義shell函數(shù)(define function)

語法:

[ function ] funname [()]
{
action;
[return int;]
}

說明:

1、可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數(shù)。
2、參數(shù)返回,可以顯示加:return 返回,如果不加,將以最后一條命令運行結(jié)果,作為返回值。 return后跟數(shù)值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.sh 
testfun1.sh: line 3: fSum: command not found 
5,7 
3,2

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

1、必須在調(diào)用函數(shù)地方之前,聲明函數(shù),shell腳本是逐行運行。不會像其它語言一樣先預(yù)編譯。一次必須在使用函數(shù)前先聲明函數(shù)。

2、total=$(fSum 3 2); 通過這種調(diào)用方法,我們清楚知道,在shell 中 單括號里面,可以是:命令語句。 因此,我們可以將shell中函數(shù),看作是定義一個新的命令,它是命令,因此 各個輸入?yún)?shù)直接用 空格分隔。 一次,命令里面獲得參數(shù)方法可以通過:$0…$n得到。 $0代表函數(shù)本身。

3、函數(shù)返回值,只能通過$? 系統(tǒng)變量獲得,直接通過=,獲得是空值。其實,我們按照上面一條理解,知道函數(shù)是一個命令,在shell獲得命令返回值,都需要通過$?獲得。

二、函數(shù)作用域,變量作用范圍

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

#!/bin/sh 
 
echo $(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.sh 
Linux 
test! 
100 
1001 
11 
1001

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

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

這些,是我在工作中,對linux ,shell 函數(shù)使用一些經(jīng)驗總結(jié),有沒有提到地方,歡迎交流!

以下是其它網(wǎng)友的補充:

本教程目前為止所有腳本都是從頭到尾執(zhí)行。這樣做很好,但你也許已經(jīng)注意到有些腳本段間互相重復(fù)。

shell允許將一組命令集或語句形成一個可用塊,這些塊稱為shell函數(shù)。

shell中函數(shù)的定義格式如下:

函數(shù)名(){
command1
command2
...
commandN
[ return value ]
}

如果愿意,可在函數(shù)名前加上關(guān)鍵字function,這取決于使用者。
function 函數(shù)名(){
command1
command2
...
commandN
[ return value ]
}

函數(shù)返回值,可以顯示增加return語句;如果不加,則將最后一條命令運行結(jié)果作為返回值(一般為0,如果執(zhí)行失敗則返回錯誤代碼)。 return后跟數(shù)值(0-255)。

函數(shù)可以放在同一個文件中作為一段代碼,也可以放在只包含函數(shù)的單獨文件中。函數(shù)不必包含很多語句或命令,甚至可以只包含一個echo語句,這取決于使用者。

下面的例子定義了一個函數(shù)并進行調(diào)用:

#!/bin/bash
demoFun(){
echo "This is your first shell function!"
}
echo "Function begin..."
hello
echo "Function end!"輸出:
Function begin...
This is your first shell function!
Function end!

下面定義一個帶有return語句的函數(shù):

#!/bin/bash
funWithReturn(){
echo "The function is to get the sum of two numbers..."
echo -n "Input first number: "
read aNum
echo -n "Input another number: "
read anotherNum
echo "The two numbers are $aNum and $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
echo "The sum of two numbers is $? !"輸出類似下面:
The function is to get the sum of two numbers...
Input first number: 25
Input another number: 50
The two numbers are 25 and 50 !
The sum of two numbers is 75 !

函數(shù)返回值在調(diào)用該函數(shù)后通過 $? 來獲得。

注意:所有函數(shù)在使用前必須定義。這意味著必須將函數(shù)放在腳本開始部分,直至shell解釋器首次發(fā)現(xiàn)它時,才可以使用。調(diào)用函數(shù)僅使用其函數(shù)名即可。

您可能感興趣的文章:
  • linux shell腳本對未定義變量的判斷以及if的用法詳解
  • 淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋
  • 判斷Linux Shell環(huán)境變量是否存在
  • Linux bash Shell中的變量類型詳解
  • Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量
  • Linux Shell腳本系列教程(三):變量和環(huán)境變量
  • python文件讀寫操作與linux shell變量命令交互執(zhí)行的方法
  • linux shell awk獲得外部變量(變量傳值)簡介
  • linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹
  • linux中shell的變量的數(shù)值計算

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)》,本文關(guān)鍵詞  linux,shell,自定義,函數(shù),方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品不卡一区二区三区| 欧美精品久久久久久久多人混战 | 97se亚洲国产综合自在线观| 成人国产一区二区三区精品| 国产成人精品亚洲午夜麻豆| 国产99久久久国产精品免费看| 激情综合色综合久久| 久久99热99| 国产精品99久久久久久似苏梦涵| 国产一区视频网站| 高清免费成人av| 91亚洲精华国产精华精华液| 欧美日韩亚洲国产综合| 欧美一级理论性理论a| 欧美videos大乳护士334| 久久精品夜夜夜夜久久| 亚洲日本va午夜在线影院| 夜夜揉揉日日人人青青一国产精品| 亚洲黄色尤物视频| 日韩综合在线视频| 韩国一区二区视频| thepron国产精品| 91.com在线观看| 国产丝袜美腿一区二区三区| 亚洲卡通欧美制服中文| 日本成人中文字幕在线视频 | 一本到不卡精品视频在线观看| 91亚洲男人天堂| 欧美一区二区高清| 国产精品伦理在线| 日韩国产欧美在线视频| 国产精品1区2区3区在线观看| 日本高清成人免费播放| 欧美一区二区大片| 中文字幕av一区二区三区| 亚洲一区二区三区影院| 国产伦精品一区二区三区免费| 91女人视频在线观看| 日韩三级伦理片妻子的秘密按摩| 中文子幕无线码一区tr| 午夜精品一区二区三区免费视频 | 亚洲色图一区二区| 青青草伊人久久| 91视频你懂的| 日本一区二区三区视频视频| 五月开心婷婷久久| 成人ar影院免费观看视频| 日韩欧美国产三级| 亚洲成av人影院| 91年精品国产| 国产亚洲精品bt天堂精选| 婷婷丁香久久五月婷婷| 91免费视频网址| 国产情人综合久久777777| 蜜臀av性久久久久蜜臀av麻豆 | 国模一区二区三区白浆 | 伦理电影国产精品| 欧美亚洲自拍偷拍| 亚洲欧美乱综合| 国产成a人亚洲| 久久久久久久精| 精品一区二区三区免费毛片爱 | av综合在线播放| 欧美激情一二三区| 国产一区二区剧情av在线| 欧美精品xxxxbbbb| 亚洲成人资源在线| 欧美在线看片a免费观看| 亚洲免费成人av| 色综合久久久久| 国产精品毛片无遮挡高清| 国产传媒日韩欧美成人| 久久这里只有精品视频网| 精品写真视频在线观看| 欧美一级二级三级乱码| 奇米影视在线99精品| 91精品国产91久久久久久一区二区| 亚洲国产精品视频| 777亚洲妇女| 麻豆视频观看网址久久| 日韩免费视频一区| 日本欧洲一区二区| 久久综合资源网| 福利一区福利二区| 日韩理论片在线| 欧美影院精品一区| 图片区日韩欧美亚洲| 日韩欧美亚洲另类制服综合在线 | 色天天综合色天天久久| 尤物av一区二区| 欧美精品一二三四| 激情小说亚洲一区| 国产精品电影一区二区| 色呦呦网站一区| 日本视频一区二区| 国产亚洲一二三区| 日本二三区不卡| 韩国成人在线视频| 中文字幕制服丝袜一区二区三区 | 成人污视频在线观看| 亚洲欧美欧美一区二区三区| 欧美精品色一区二区三区| 国产裸体歌舞团一区二区| 日韩毛片一二三区| 日韩一卡二卡三卡国产欧美| 国产精品一区二区久久不卡| 亚洲人成网站在线| 日韩精品最新网址| 一本大道av伊人久久综合| 午夜欧美大尺度福利影院在线看 | 色婷婷亚洲婷婷| 美女网站在线免费欧美精品| 中文字幕一区av| 日韩欧美美女一区二区三区| 97se亚洲国产综合自在线| 精品影视av免费| 亚洲午夜久久久久中文字幕久| 国产亚洲精品aa午夜观看| 欧美剧情片在线观看| 99久久精品国产导航| 裸体在线国模精品偷拍| 亚洲精品日韩综合观看成人91| 国产亚洲精品福利| 日韩一区二区三区免费观看| 在线观看www91| 粉嫩嫩av羞羞动漫久久久| 免费成人深夜小野草| 亚洲精品菠萝久久久久久久| 久久久久久影视| 欧美va在线播放| 欧美一区二区二区| 欧美日韩二区三区| 欧美在线观看视频一区二区 | 亚洲日本成人在线观看| 欧美国产丝袜视频| 久久久五月婷婷| 久久九九久精品国产免费直播| 91精品国产麻豆国产自产在线| 欧美亚洲动漫精品| 日本精品视频一区二区三区| av电影在线观看完整版一区二区| 国产一区二区日韩精品| 久久狠狠亚洲综合| 美女爽到高潮91| 久久精品国产亚洲高清剧情介绍 | 免费日本视频一区| 亚洲va韩国va欧美va精品| 一区二区激情视频| 亚洲高清一区二区三区| 亚洲成人一区在线| 天天色综合天天| 日韩电影一二三区| 精品一区免费av| 国产 日韩 欧美大片| 成av人片一区二区| 色综合视频一区二区三区高清| av在线综合网| 欧美亚日韩国产aⅴ精品中极品| 在线看一区二区| 欧美曰成人黄网| 日韩一区二区三区在线| 久久伊99综合婷婷久久伊| 国产欧美精品国产国产专区| 国产精品久久久久久亚洲毛片 | 日韩免费高清电影| 精品国产亚洲一区二区三区在线观看| 日韩精品一区在线| 中文字幕成人在线观看| 亚洲一区中文在线| 美美哒免费高清在线观看视频一区二区| 伦理电影国产精品| 99精品视频在线免费观看| 欧美亚洲自拍偷拍| 久久久精品一品道一区| 综合久久国产九一剧情麻豆| 亚洲一区二区视频在线观看| 精品一区二区成人精品| 成人va在线观看| 91精品中文字幕一区二区三区| 久久蜜桃香蕉精品一区二区三区| 国产精品久久久久久福利一牛影视| 亚洲激情图片一区| 激情深爱一区二区| 欧美综合亚洲图片综合区| 欧美电视剧在线观看完整版| 亚洲天堂久久久久久久| 美女一区二区在线观看| 91麻豆免费观看| 久久综合九色综合欧美亚洲| 亚洲精品成人精品456| 久久国产尿小便嘘嘘尿| 欧美三级欧美一级| 日本一区二区电影| 九九热在线视频观看这里只有精品| 91视频免费看| 亚洲国产精品黑人久久久| 奇米综合一区二区三区精品视频 | 2020国产精品自拍| 五月天激情综合| 在线亚洲精品福利网址导航|