#!/bin/bash
yes_or_no {
echo "Is your name $* ?"
while ture ; 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
注:shell的函數還是挺有意思的,函數原型中沒有參數的聲明,用$@,$*,$1,$2.....代替。這個程序的參數是一樣的,這就存在一個參數有效範圍的問題。同時,可以使用local 聲明僅在函數體內,可以使用的變量。