一个简单的函数:
#!/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 声明仅在函数体内,可以使用的变量。