#!/bin/sh
yes_or_no(){
echo "Is your name $* ?"
while true
do
echo -n "yes or no"
read x
case "$x" in
y | yes ) return 1;;
n | no ) return 0;;
* ) echo "Answer yes or no"
esac
done
}
if yes_or_no "$1"
then
echo "Hi $1,nice name i"
else
echo "never mind"
fi
exit 0
输出 - >
./fuction1.sh salman khan
Is your name salman ?
yes or non
Hi salman,nice name i
为什么相反的输出凸轮如果我按否然后输出将永远不会介意,因为功能返回0。 我在这里完全迷茫可以帮助我解决这个问题吗?
答案 0 :(得分:2)
在shell中,事情与其他语言不同。 " 0"是一个成功的代码:
$ true
$ echo $?
0
$ if true ; then echo "True"; fi
True
从上面你可以看到0实际上意味着" 0错误",而除了" 0"会指示错误代码。因此,shell逻辑面向那个而不是C-like,其中0 == False和1 == True