Как создать нормально работающую программу? Потому что моя программа работает вечно и не остановится - PullRequest
0 голосов
/ 13 июня 2019

Мой английский очень плохой, но я пытаюсь объяснить мою проблему. Я хочу создать небольшую программу на bash, в которой пользователю придется угадывать цифры. Но моей программе нет конца.

Я новичок в написании сценариев bash, но я стараюсь становиться лучше каждый день. Я использую CentOS 7. Я захожу в / usr / bin / local и создаю какой-то файл, даю ему chmod + x и открываю с помощью gedit:

#!/usr/bin/bash

#This script should ask us our name and play the game "Guess the Number" with us.

echo "What is your name?"
read name
echo "Hello $name"
echo "I want to play $ name with you, you have to guess the number from 1 to 10)"
echo "Are you ready?"
read rdy


answer=$(( answer = $RANDOM % 10 ))


read -p "Enter your number: " variant 
     while [ $answer != $variant ]; do

if [ $answer -gt $variant ]; then 
     echo "Your number is bigger, try again"

elif [ $answer -lt $variant ]; then
     echo "Your number is smaller, try again"

  continue

fi

done

eternal "Your number is smaller/bigger"
until you press ctrl+c

Что мне нужно сделать, пожалуйста, помогите. Я знаю, что любители не любят новичков, но мне нужна ваша помощь, покажите мне мою ошибку, и я могу поправиться. Спасибо!

Ответы [ 2 ]

1 голос
/ 13 июня 2019
#!/bin/bash
echo "What is your name?"
read name
echo "Hello $name"
echo "I want to play  with you, you have to guess the number from 1 to 10"


answer=$(( $RANDOM % 10 ))

while true
do
    read -p "Enter your number: " variant
    if [ "$answer" -gt "$variant" ]; then
        echo "The number is bigger, try again"

    elif [ "$answer" -lt "$variant" ]; then
        echo "The number is smaller, try again"
    else
        break;
    fi

done
echo "Yes, the answer was ${answer}"
0 голосов
/ 13 июня 2019

Звоните

read -p "Enter your number: " variant

до цикла while.

Внутри цикла вы никогда не измените variant, поэтому исходное значение повторно используется в условии while. Навечно.

Вы можете начать с variant=-1 и переместить read внутри цикла или сделать что-то вроде @ xiawi.

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