shell函數(shù)

shell函數(shù)

死循環(huán)

whlie :
do
    語句體
done

shell函數(shù)

  1. 什么時候用到函數(shù)
  • 執(zhí)行的功能類似
  • 根據(jù)實際需求 ,進行設(shè)置
  1. shell函數(shù)定義格式
function 函數(shù)名()
{
    
}

  1. 調(diào)用shell函數(shù)
  • 函數(shù)名
  1. 函數(shù)參數(shù)傳遞
function test()
{
    echo "$0"
    echo "$1"
    echo "$2"
    echo "${10}"
    echo "hello worid"
}
test 1 2 3 4 5 6 7 8 9 34
  • 分析:當(dāng)參數(shù)作為shell函數(shù)傳遞時,當(dāng)在函數(shù)里面接收n>=10個參數(shù)時,要加上${n};
  • $0不是test,而是shell文件本身
  • 函數(shù)里面的$1與函數(shù)外面的$1不相同,但是函數(shù)里面的$0與函數(shù)外面的$0相同
function sum()
{
    num1=$1
    num2=$2
    let value=num1+num2
    return $value
}
sum 1 2
echo "sum=$?"
sum 2 3
echo "sum=$?"

  • 結(jié)果為: sum=3,sum=5
  1. 分析:函數(shù)如果是return出來的結(jié)果,我們用$?接收,$?是接收最后運行的一次腳本.
  2. 如果return后面的值>255,那么函數(shù)運行完之后用$?接收,$?=value%256
  3. 怎么接收return出來的值比255大?問題解決之道:使用echo返回出來,函數(shù)外使用變量接收,value= 函數(shù)名,從而value進行操作
  4. 實際上echo是臨時保存函數(shù)的結(jié)果集
function test()
{
    echo 513
}
value=`test`
echo "test函數(shù)的返回值${value}"
  • shell函數(shù)總結(jié):
  1. function函數(shù)可寫可不寫
  2. shell 函數(shù)可以有return,也可以沒有return
  3. 如果是return出來的結(jié)果必須要用$?接收
  4. 如果是echo保存的結(jié)果集,必須要用value=test取結(jié)果接收
  5. 函數(shù)里面可以嵌套,可以內(nèi)嵌創(chuàng)建函數(shù)
a()
{
  b()
  {
      
  }
  
  b
    
}
a
a()
{
    
  b()
  {
    echo "==b=="
  }
  b
    
}
a
a()
{
    
  b()
  {
    echo "==b=="
  }
  
    
}
a
b

6.條件函數(shù)

a()
{
  value=9
  if [ $value -eq 9 ]
  then
  b()
  {
    echo "==b=="
  }
  else
  c()
  {
    echo "==c=="
  }
    
}
a
b
  • 結(jié)果為==b==
  • 分析:函數(shù)b和函數(shù)c在什么情況下可以調(diào)用? 先運行函數(shù)a,因為a中有函數(shù)b和c的實現(xiàn).在if條件成立時,實現(xiàn)函數(shù)b的定義,其他情況下,實現(xiàn)函數(shù)c的定義
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來源: Linux命令行與shell腳本編程大全 博客地址,推薦電腦點 內(nèi)容 基本的腳本函數(shù)返回值在函數(shù)中使用變量...
    王詩翔閱讀 2,539評論 0 3
  • 0.linux啟動的步驟 設(shè)備加電----》BIOS自檢-----》grub引導(dǎo)啟動-----》加載內(nèi)核----》...
    萌面大叔2閱讀 856評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 秋天,是一個豐收的季節(jié),也是一個凋零的季節(jié)。 春華秋實,春花秋實;春天開花,秋天結(jié)果,收獲;反反復(fù)復(fù)。 秋葉,春天...
    小小一瑜舟閱讀 573評論 0 0
  • 我寫的所有故事都是假的,因為這世界上我還沒有遇到過真正的愛情,那些電視劇小說里演繹的美好情節(jié),都是假的,于是我也開...
    唐歡喜閱讀 199評論 0 0

友情鏈接更多精彩內(nèi)容