КОМАНДА CHOICE

Изображение пользователя Michael72.

Назначение                    Примеры                    Скрипт

Используется в файлах сценариев для вывода на экран
специального приглашения. Это приглашение позволяет Вам решить, должна
ли программа сценария продолжать выполнение.

Синтаксис

choice [текст] [варианты] ... [--help]

Параметры
текст   Определяет любой текст, который вы хотите вывести перед приглашением. Текст необходимо заключить в кавычки. Текст обязательно должен быть задан в качестве первого параметра.
варианты     Задаются клавиши, которые можно использовать для ответа на приглашение. Клавиши разделяются пробелами. На экран не выводятся. Для вывода на экран используется только первый параметр.
--help   Выводит сокращенную электронную справку.

Примечания

Первая клавиша, которую вы назначили в качестве варианта, возвращает
значение 1, вторая - 2, третья - 3 и так далее. Если вы нажмете
клавишу, которой нет среди перечисленных, раздастся звуковое
предупреждение.

Если будет обнаружена ошибка, переменная $? установится в
значение 255.

Если при нажатии отсутствующей в вариантах клавиши не издаётся
звуковой сигнал, тогда наиболее вероятной причиной этого может быть то,
что PC Speaker занесен в blacklist, т.е. можно сказать выключен.
Проверить это можно так:
$ cat /etc/modprobe.d/blacklist.conf | grep pcspkr
blacklist pcspkr

Чтобы включить PC Speaker, подгрузите модуль "pcspkr":
# modprobe pcspkr
Теперь можно в виртуальной консоли проверить наличие звука из
системного динамика. Для этого перейдите в виртуальную консоль (Ctrl+Alt+F1),
войдите под своей учётной записью и нажмите на клавишу <tab>, в ответ вы
должны услышать бибикающий сигнал. Так же можно услышать звук на команду:
echo -e "\a"
Тоже самое можно проделать в графической программе XTerm (или UXTerm).
Если в XTerm сигнала из системного динамика нет, тогда включите его по
команде:
xset b on
Если есть желание иметь включенным pcspkr всегда при старте и после
перезагрузки системы, то в /etc/modprobe.d/blacklist.conf закомментируйте
строчку blacklist pcspkr (поставьте знак # вначале строки).

В программе Konsole вышеупомянутые действия (нажатие на клавишу <tab> или
команда echo -e "\a") не приводят к воспроизведению звукового сигнала в
системном динамике. Однако есть возможность настроить Konsole на
воспроизведение звука двумя способами.

  1. Через звуковую карту
  2. Для вывода сигнала через динамики, подключенные к звуковой карте, выберите
    из меню "Настройка" команду "Настроить уведомления", после чего выберите
    из списка событий заголовок Сигнал в видимом сеансе. Пометьте
    "галочкой" опцию "Воспроизвести звук" и справа в строке ввода укажите
    звуковой файл /usr/share/sounds/ubuntu/stereo/bell.ogg, затем нажмите на
    Enter или щелкните на OK.

  3. Через системный динамик
  4. Для того, чтобы Konsole выводил сигнал через системный динамик, необходимо
    использовать утилиту beep. Установите эту утилиту по команде:
    sudo apt-get install beep
    В скрипте choice закомментируйте 44 строку:
      echo -en "\a"
    и раскомментируйте строку 45:
    #  beep
    После этих действий скрипт choice для воспроизведения звукового сигнала
    будет использовать утилиту beep.

Примеры

Что появится на экране при использовании команды CHOICE в файле сценария:

Если вы ввели в файле сценария команду
choice "(Да-1, Нет-0) -?" 1 0
то при запуске этого файла вы увидите следующее сообщение:
(Да-1, Нет-0) -?
Использование команды CHOICE в программе сценария:

Ниже приведен список программ сценариев, использующих команду CHOICE. В качестве наглядного примера небольшой фрагмент из программы showstat:
      for i in ${notinstalledpackage[*]}
      do
        echo; echo "Хотите установить пакет $i?"
        choice "(Да-1, Нет-0) -?" 1 0
        if [ "$?" -eq "1" ]
        then
          packages[$j]=$i
          let "j += 1"
        fi
      done

Данный фрагмент выполняет копирование имен неустановленных пакетов из массива notinstalledpackage в массив packages с предварительным выводом запроса на подтверждение.

Сценарии, использующие команду CHOICE

  1. run
  2. packages
  3. showstat


Скрипт

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры