shell中的函數(shù)

首先我們先來一個簡單的腳本程序

#!/bin/sh

foo() {
    echo "executing"
}

echo "starting"
foo
echo "end"
exit 0

這里,我們只需要注意一點,因為shell腳本的執(zhí)行順序是從上往下依次執(zhí)行的,所以我們必須在使用函數(shù)前對函數(shù)進行聲明。這點尤其重要。

接著,我們來編寫一個有返回值的函數(shù),稍微增加一點難度,

#!/bin/sh

yes_or_no() {
  echo "Is your name $*?"
  while true
  do
    echo -n "Enter yes or no: "
    read x
    case "$x" in 
      y | yes ) return 0;;
      n | no ) return 1;;
      * )        echo "Answer yes or no "
    esac
  done
}
# 這里是主體部分
echo "Original parameters are $*"
if yes_or_no "$1"
then
  echo "hi $1, nice name"
else
  echo "Never mind"
fi
exit 0

在這個程序里面,我們首先定義了函數(shù)yes_or_no,在函數(shù)的主體部分進行調用時執(zhí)行,我們看看這個腳本的執(zhí)行

$ ./my_name Rick Neil

這里我們執(zhí)行腳本時傳給腳本參數(shù),他們被保存在$1 $2中,并傳遞給函數(shù)進一本執(zhí)行。這兩個簡單的例子說明了shell腳本的執(zhí)行過程及參數(shù)傳遞。(補充一點:在上面的例子中,case中的條件已經(jīng)記著要以;; 兩個分好結束!)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容