首先我們先來一個簡單的腳本程序
#!/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)記著要以;; 兩個分好結束!)