【发布时间】:2015-04-12 20:12:39
【问题描述】:
所以我做了一小段代码,应该用另一个字符串中的字符替换下划线 (_)。如果你想知道目的,我打算制作刽子手游戏。
x=0
while [ $x -lt $LengthOfAnswer ]; do
if [ $Answer:$x:1 == $GuessedChar ]; then
Underscores=$( echo $Underscores | sed s/_/${Answer:$x:1}/$((x+1)) )
fi
done
由此产生的结果是,第一次进行猜测时,这个循环就会结束,一切都按预期进行。 然而,在那之后,结果开始出现奇怪的模式。
例子:
答案是“abcdef”
开始:“_ _ _ _ _ _”
猜“a”:“a _ _ _ _ _”
猜“b”:“a _ b _ _ _”
猜“c”:“a_b_c_”
当然,此时应该是“a b c _ _ _”
如果有人对需要做些什么来完成这项工作有任何建议,我很乐意听到。如果除了改变我的结构别无选择,请告诉我。
【问题讨论】:
-
你可以找到一个用 bash 制作的刽子手游戏的实现 here
-
嗯,我的大学正在进行一项评估,我们都需要制作 Hangman 来测试我们的 bash 技能。从结构上讲,这很容易,但这里的语言本身是最容易遇到的障碍。
标签: linux string bash loops replace