ryg

выражение select в bash

Данный оператор взят из Korn Shell и служит для создания меню и интерактивного ввода в скриптах

Вcтроенный оператор Bash. Команда терминала в OS X. Используется для создания цикла в скриптах. встроенная команда предлагает выбрать одно из предложенных значений.

Синтаксис:

select name [ in word ] ; do list ; done  

Описание:

Из списка слов идущих после in генерируется нумерованный список, если word пропущено, то для выбора выводятся позиционные параметры скрипта (PARAMETERS).Если вместо word установить "*" в качестве списка выбора будет предложен список файлов текущей папки.

Подсказка отображаемая на экране задается в переменной PS3. Выбранный номер из списка сохраняется в переменной REPLY, а само значение в переменной name. Если ничего не будет выбрано предложение выбрать выводится повторно, если введено EOF команда исполняется. Список команд list выполняется после каждого выбора пока не будет встречена команда break.

Если вы введете любые символы, а не число соответствующее номеру из списка, то данный ввод будет присвоен переменной name, а переменной REPLY ничего присвоено не будет. 

Возвращаемое значение равно статусу последней выполненной команды или 0 если никаких команд не исполнялась.

Пример 1

		
			#!/bin/bash
			# Установка строки-приглашения
			PS3='Выберите один из вариантов: '
			select Activity in "Продолжить" "Прекратить" "Игнорировать" "Зависнуть"
			 do  
			     echo "Вы выбрали  $Activity !"
			     echo "Выбранный номер  $REPLY !"
			     break 
			done
			echo "конец примера"
	

Пример 2

		
			#!/bin/bash
			# Установка строки-приглашения
			PS3='Выберите файл для обработки: ' 
			select filename in *
			do  
			    echo "Вы выбрали  $filename"
			    echo "Выбранный номер  $REPLY !"
			  break 
			done
			echo "конец примера"
	

Описание синтаксиса Bash Shell

Близкие команды:


continue - продолжить выполнение цикла
break -прервать выполнение цикла
for - другой вариант создания цикла
Весь список команд терминала OS X