Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как задать параметры ввода из клавиатуры для bash  (Прочитано 686 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн shyatan007

  • Автор темы
  • Любитель
  • *
  • Сообщений: 83
    • Просмотр профиля
есть некая конструкция:
read -n 4 test
case test in
xxxx)echo "Выбран вариант xxxx";;
xxxy)echo "Выбран вариант xxxy";;
xxyy)echo "Выбран вариант xxyy";;
xyyy)echo "Выбран вариант xyyy";;
esac
Ну и собственно сам вопрос:
Можно ли как то ограничить ввод с клавиатуры. Что бы допустим можно было вводить знаки 0-10, а остальные значения игнорировать.
Встроенной командой read этого нельзя сделать. Нужно делать какой нибудь цикл для проверки переменой $test. Я правильно понял?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Зачем проверять при вводе, если Вы всё равно проверяете потом?
Код: (bash) [Выделить]
while ${flag:-true}
do
    flag=false
    read -n 4 test
    case test in
    xxxx) echo "Выбран вариант xxxx";;
    xxxy) echo "Выбран вариант xxxy";;
    xxyy) echo "Выбран вариант xxyy";;
    xyyy) echo "Выбран вариант xyyy";;
       *) echo "Wrong input"
          flag=true
    esac
done
И вообще, для выбора из нескольких значений откройте для себя select(read и case  в одном флаконе)
« Последнее редактирование: 29 Сентября 2015, 14:31:14 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн shyatan007

  • Автор темы
  • Любитель
  • *
  • Сообщений: 83
    • Просмотр профиля
И вообще, для выбора из нескольких значений откройте для себя select(read и case  в одном флаконе)
Спасибо за помощь. Будем открывать select для себя

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.