Цикл bash while-for не выполняется правильно - PullRequest
0 голосов
/ 08 мая 2018

Это мой 1-й 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

Я пытаюсь создать сценарий, в котором вы спрашиваете, хочет ли кто-нибудь чашку чая.Если человек отвечает 'n', цикл повторяется.Если человек отвечает 'y', цикл заканчивается выводом y. Цикл повторяется 5 раз, если в качестве вывода не введен y.

Может кто-нибудь помочь мне исправить вышеприведенный скрипт или какой-либо отзыв о нем?

Изо всех сил пытается найти какую-либо поддержку для этого онлайн.

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете написать свой сценарий несколькими способами, но это один из подходов:

#!/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

Надеюсь, это познакомит вас с некоторыми распространенными методами сценариев оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...