Я пытаюсь предложить пользователю ввести, скажем, "5" или "10", а затем сохранить его как переменную. И если они не введут ни одно из этих двух чисел, продолжайте подсказывать им, пока они не сделают. Я пытался запустить следующий код, но он не работает.

прочитайте -p 'Пожалуйста, введите ваш номер. (5 или 10) 'num_choice

пока (($ num_choice!= 5 | 10))

делать

прочитайте 'Пожалуйста, введите \"5 \" или \"10 \"' num_choice

сделанный

echo "Вы выбрали номер $ num_choice"

Кроме того, похоже, что кавычки блока не позволяют мне использовать ни один интервал, ни отступ, я предполагаю, что я делаю что-то не так. Я извиняюсь, я довольно новичок в написании сценариев! Спасибо!

1 ответ1

0

Вы не можете использовать 5|10 с правой стороны компаратора. Вы должны "распространить" сравнение

num_choice=0
while (( num_choice != 5 && num_choice != 10 )) ; do
    read -p 'Please enter your number (5 or 10)' num_choice
done
echo "You've chosen $num_choice"

Обратите внимание, что вы все равно можете получать ошибки, если пользователь указывает нечисловую строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .