#!/bin/bash
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo "Enter yes or no"
read x
case "$x" in
yes ) return 0 ;;
no ) return 1;;
esac
done
}
echo "Original parameters are $*"
i=$( yes_or_no $1) //我这样写主要是参考了set获取date所有变量的写法,set(date);但是现在这一句话不对啊,请各位帮帮忙啊。
1echo $i
exit 0
å½æ°çè¿åå¼å®é
ä¸å°±æ¯å½æ°çéåºç¶æ
yes_or_no Kitty
i=$?
å°±å¯ä»¥äºã
$? 代表ä¸ä¸æ¡æ令çéåºç¶æã
ææ ·ä½¿ç¨ifè¯å¥å°±éä¾¿ä½ äºã
yes_or_no Kitty
i=$?
å°±å¯ä»¥äºã
$? 代表ä¸ä¸æ¡æ令çéåºç¶æã
ææ ·ä½¿ç¨ifè¯å¥å°±éä¾¿ä½ äºã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-11-04
这个 return 要用 if 来判断的:
#!/bin/bash
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo "Enter yes or no"
read x
case "$x" in
yes ) return 0 ;;
no ) return 1;;
esac
done
}
echo "Original parameters are $*"
if yes_or_no $1
then
i=1
else
i=0
fi
echo "结果i=$i"
exit 0追问
then
i=1
else
i=0
fi
相当于
yes_or_no $1
if $?
then
i=1
else
i=0
fi
then
做返回1的时候的各种操作
else
做返回0的时候的各种操作
fi追问
#!/bin/bash
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo "Enter yes or no"
read x
case "$x" in
yes ) return 0 ;;
no ) return 1;;
esac
done
}
echo "Original parameters are $*"
if yes_or_no $1
then
i=1
else
i=0
fi
echo "结果i=$i"
exit 0追问
非常谢谢你的回答,让我觉得百度的朋友还是很热心的;你可以看看上面那个人写的,他就用了一种别的办法,还是很不错的。
追答嗯,我的写法跟他的是一个意思,我写复杂了:
if yes_or_no $1then
i=1
else
i=0
fi
相当于
yes_or_no $1
if $?
then
i=1
else
i=0
fi
如果你后续要用 $i 来做判断的话,那就不需要赋值了:
if yes_or_no $1then
做返回1的时候的各种操作
else
做返回0的时候的各种操作
fi追问
兄弟,顺便看看这个问题怎么解决啊
追答看了一下,那有挺多热心人帮忙的了,那个问题我也不熟悉,而且比较需要实际环境测试操作,所以我可能帮不上啦。