日期:2014-05-16 浏览次数:20851 次
#!/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" #问题1.当函数yes_or_no返回值为0,条件为真,当yes_or_no返回值为0,条件反而为假
then
echo "Hi $1, nice name"
else
echo "Never mind"
fi
exit 0
if 0 #问题2.这里无论是什么值,执行的结果都是no then echo "yes" else echo "no" fi
a=0 if [[ $a ]] then echo yes else echo no a=1 if [[ $a ]] then echo yes else echo no
------解决方案--------------------
布尔型0就是no
------解决方案--------------------
这个和bash版本有关 低版本的bash 不支持 [[运算符。
[]这个运算符有时候会出现问题 比如 [ $a -eq 1 ] 当a没定义的时候会报语法错误 而[[不会
------解决方案--------------------
可以参考 tr 的[[:upper:]] [[:lower:]]
------解决方案--------------------