whiptail или диалог

Я собираюсь создать скрипт, который будет использовать пользовательский ввод, поэтому я решил использовать whiptail, но немного путаю тот, который переносится и будет работать в ubuntu 10.x и выше и CentOs5.x и выше.

Я знаю, что read , но мне нужен диалог, как инструмент, поэтому, если кто-нибудь знает какую-либо альтернативу, просто дайте мне знать.

  • Странное поведение whiptail
  • Изменение / редактирование текста датчика whiptail
  • Радиолюбитель Whiptail
  • В то время как цикл с результатом от функции - BASH
  • Массив в меню whiptail - BASH
  • Цикл сценария Bash для увеличения параметров
  • Вопросы о функциях whiptail и bash
  • Индикатор выполнения lftp whiptail
  • 3 Solutions collect form web for “whiptail или диалог”

    whiptail устанавливается по умолчанию для большинства deb-based систем, а dialog – нет.

    Afair, основанный на rpm whiptail также является диалоговым окном по умолчанию.

    Думаю, это важно для вас.

    Таким образом, whiptail является правильным выбором из точки переносимости.

    Также whiptail основан на newt , в то время как dialog основан на ncurses . С моей точки зрения, первый из них более красив (:

    Почему бы не использовать оба варианта:

    (Требуется bash 4)

     #!/usr/bin/env bash t(){ type "$1"&>/dev/null;} function Menu.Show { local DIA DIA_ESC; while :; do t whiptail && DIA=whiptail && break t dialog && DIA=dialog && DIA_ESC=-- && break exec date +s"No dialog program found" done; declare -A o="$1"; shift $DIA --backtitle "${o[backtitle]}" --title "${o[title]}" \ --menu "${o[question]}" 0 0 0 $DIA_ESC "$@"; } Menu.Show '([backtitle]="Backtitle" [title]="Title" [question]="Please choose:")' \ \ "Option A" "Stuff...." \ "Option B" "Stuff...." \ "Option C" "Stuff...." 

    (Это не обязательно ответ, но я написал как таковой из-за количества кода. У меня нет практического опыта работы с whiptail . whiptail это позже, если пользователь whiptail тестируемое решение на это.)

    Поскольку Bash Shell Scripting / Whiptail пишет:

    Из README: whiptail предназначен для перехода в режим совместимости с диалоговым окном (1), но имеет меньше возможностей: некоторые диалоговые окна не реализованы, например, хвост, время, календарь и т. Д.

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

     # check whether whiptail or dialog is installed # (choosing the first command found) read dialog <<< "$(which whiptail dialog 2> /dev/null)" # exit if none found [[ "$dialog" ]] || { echo 'neither whiptail nor dialog found' >&2 exit 1 } # just use whichever was found "$dialog" --msgbox "Message displayed with $dialog" 0 0 

    (Да, описанное выше обнаружение не сработает на инструментах, установленных внутри каталогов с именем, содержащим символы новой строки. Я просто сохранил его просто.)

    Interesting Posts

    Поиск файлов, не установленных менеджером пакетов RPM

    запустить tcpdump не до содержимого пакета interpert

    Может ли файл устройства в Linux указывать на несколько файлов?

    Используйте xkb для создания скобки вставки вставки

    Как правильно экспортировать и импортировать общие ресурсы NFS, которые также имеют подкаталоги в качестве точек монтирования?

    «Select» vs «зависит» в ядре Kconfig

    Как изменить текстовый редактор по умолчанию в рейнджере?

    Конкатенация содержимого файла И имен

    Перезагрузка Upstart не работает

    .profile написан в сценарии оболочки – могу ли я вместо этого заставить мою систему понять, что я хочу, чтобы вместо этого выполнялся скрипт Python?

    Изменить / Создать разрешения для папки

    Добавление вертикального пространства после команды в bash

    Как разблокировать GNOME keyring автоматически в NixOS?

    i915 не может работать с nomodeset?

    Как получить доступ к папке, в которую я не могу подключиться?

    Linux и Unix - лучшая ОС в мире.