Скрипт Ubuntu, никогда не заканчивающий цикл - PullRequest
0 голосов
/ 04 июня 2018

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

while true
do
    echo "1) option1"
    echo "2) option2"
    echo "3) option3"
done

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Для меню в оболочке используйте оператор select:

PS3='Select your choice: '
select ans in "option1" "option2" "option3" quit
do
    case $ans in
        option1) do_something ;;
        option2) do_something ;;
        option3) do_something ;;
        quit) break ;;
    esac
done
0 голосов
/ 04 июня 2018

В цикле while на месте условия вы предоставляете true, что означает, что условие всегда будет ИСТИНА и, следовательно, бесконечный цикл для.

Вот как работает цикл while:

while condition
if condition is TRUE--> then go inside loop and do operations as per instructions in it.
if condition is FALSE--> then come out of loop since the given condition is no more.

Пример очень простого while цикла:

while ((i<=3))
do
  echo "Hey there..."
  ((i = i +1 ))
done

Вывод будет следующим.

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