【发布时间】:2014-05-02 01:21:21
【问题描述】:
目前我正在使用 shell 脚本开发二十一点游戏。我的大部分脚本都使用函数,但是我用来确定播放器/计算机是否崩溃的方法似乎不起作用。谁能指出我正确的方向。 (我是 shell 脚本的新手。)运行它时,它会在以 elif 开头的行周围抛出语法错误,有时会在 if 开头。它还会打印 bustConfirm 中的所有“echo”输出,而不是仅打印正确的输出。
也是的,我的一个函数叫做 bustCheck。
bustConfirm(){
bust='bust'
under='under'
if [ $userBust -eq $bust -a $systemBust -eq $bust ]
then
echo "You both went bust! Be more careful!"
endGameRepeat
elif [ $userBust -eq $bust -a $systemBust -eq $under ]
echo $userName "went bust! Congratulations" $systemName"!"
endGameRepeat
elif [ $userBust -eq $under -a $systemBust -eq $bust ]
then
echo $systemName "went bust! Congratulations" $userName"!"
endGameRepeat
else
echo "Nobody went bust! Well played!"
endGameScores
fi
}
bustCheck(){
if [ "$userScore" -gt 21 ]
then
echo $userName "is bust!"
userBust='bust'
else
userBust='under'
fi
if [ "$systemScore" -gt 21 ]
then
echo $systemName "is bust!"
systemBust='bust'
else
systemBust='under'
fi
bustConfirm
}
我的想法是我想在 bustConfirm 函数中使用 &&,然后使用 ||如果只有其中一个被破坏,则获得玩家被破坏或系统被破坏的结果。
也只是一个指针,但在 bustCheck 中,我看到 userBust 和 systemBust 包含单词 bust 或 under。我为 bustConfirm 函数创建了变量 bust 和 under。
systemScore、userScore、systemName 和 userName 在脚本运行之前设置。 希望我已经提供了足够的详细信息并正确格式化了它,首先是正确的帖子,如果没有,我深表歉意!
【问题讨论】:
-
括号后面的空格?是的,我刚刚看到,当我把它放进去时,我实际上已经尝试过带和不带空格,所以我现在在这段代码中放了一个,只是为了表明这不是问题。此外,我刚刚看到了 Pitfall 11 段落,我将在明天测试我在这里获得的任何帮助时尝试使用该语法。非常感谢。
标签: bash shell variables syntax