当前位置: 技术问答>linux和unix
初学,最简单的Shell,看不懂输出
来源: 互联网 发布时间:2016-11-03
本文导语: #!/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;; ...
#!/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
就这么一段简单的脚本程序,下面是输出
$./test.sh rich neil
Original parameters are rich neil
Is your name rick ?
Enter yes or no: yes
Hi rick, nice name
$
我实在不理解为什么输出不是“Never mind”,我输入的是yes,那么函数yes_or_no的返回值是0啊,那就应该输出“Never mind”啊,初学,请各位指点一下,谢谢!
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
就这么一段简单的脚本程序,下面是输出
$./test.sh rich neil
Original parameters are rich neil
Is your name rick ?
Enter yes or no: yes
Hi rick, nice name
$
我实在不理解为什么输出不是“Never mind”,我输入的是yes,那么函数yes_or_no的返回值是0啊,那就应该输出“Never mind”啊,初学,请各位指点一下,谢谢!
|
不要把别的语言习惯带到shell里来 带到linux里来
在linux里 一般返回0表示成功 非0表示不成功
既然是学习 就要找本书看看 不能凭自己想当所以然
看这个
http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html
在linux里 一般返回0表示成功 非0表示不成功
既然是学习 就要找本书看看 不能凭自己想当所以然
看这个
http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html