for循环未正确执行时的bash

for循环未正确执行时的bash,bash,loops,Bash,Loops,这是我的第一个bash脚本,我希望得到一些反馈 #!/bin/bash set yname="Would you like a cup of tea?" while ($yname != "n") echo -n "Are you sure?" set yname = $<5 else ($yname != "y") then echo "Great, I'll make tea now" endif #/bin/bash set yname=

这是我的第一个
bash
脚本,我希望得到一些反馈

#!/bin/bash
set yname="Would you like a cup of tea?"
while ($yname != "n")
   echo -n "Are you sure?"
   set yname = $<5
   else ($yname != "y") then
          echo "Great, I'll make tea now"
   endif
#/bin/bash
set yname=“您想喝杯茶吗?”
而($yname!=“n”)
echo-n“你确定吗?”

set yname=$您可以用几种方法编写脚本,但这是一种方法:

#!/bin/bash
_ANSWER=""
_COUNT=0
while [ "${_ANSWER}" != "y" -a ${_COUNT} -lt 5 ] ; do
    _COUNT=$(( ${_COUNT} + 1 ))
    read -p "Would you like a cup of tea? " _ANSWER
    if [ "${_ANSWER}" == "y" ] ; then
        echo "Great, I'll make tea now"
    else
        echo "Are you sure?"
    fi
done

希望这将向您介绍一些常见的shell脚本方法。

这是完整的代码吗?似乎缺少一些内容,因为
endif
没有
if
。此外,这是
bash
,与
vim
putty
无关。请看一看:您好,非常感谢您的回复。对不正确的条款表示歉意,这对我来说是全新的。是的,你是对的,我使用的是bash。我已经设法调整脚本以输出,但我需要让它循环:“END=5 echo”你想喝杯茶吗?”阅读回答如果[$answer=n],然后echo“你确定吗?”elif[$answer=y]然后echo“太好了,我现在就泡茶”fi“谢谢你花时间回复Leslie,非常感谢。是的,当谈到shell脚本时,我非常新鲜,希望随着时间的推移不断改进。再次感谢。很高兴我的回答很有帮助。如果您不介意,通常在堆栈溢出时,如果您对答案感到满意,就“接受”它。