Установка переменных, содержащих диапазон чисел в сценарии bash [duplicate]

На этот вопрос уже есть ответ здесь:

У меня есть оператор case для диалогового меню, и я хочу, чтобы он ссылался на несколько чисел (от одного до девяти), если выбрано любое число от одного до девяти.

Как сделать так, чтобы слово имело несколько значений? Сейчас

: ${EXAMPLE=9}

но как сделать, чтобы оно было равно нескольким числам?

Я уже пробовал:

: ${EXAMPLE=1,2,3,4,5,6,7}

: ${EXAMPLE=1-9}

: ${EXAMPLE=1 && 2 && 3}

Контекст:

Я сделал диалоговое меню, в котором перечислены все файлы в определенной области, и хочу сделать case типа

case $example in
        **1)**  # but not just 1, it should be 1-9

   echo "blah blah" ;;

esac
2
задан 12 June 2017 в 07:22

1 ответ

Существуют вещи пары, которые можно сделать:

  • используйте диапазон [1-9]
  • использовать | создать список "или" значения
  • подстановочный знак использования:

Пример:

bash-4.3$ var=25
bash-4.3$ case $var in 
> [1-9]) echo "1 to 9";; 
> 25|35|45) echo "25 or 25 or 45" ;;
> 5*) echo "starting with 5";;
> esac
25 or 25 or 45

Случай главным образом для шаблонов, поэтому если Вы хотите иметь арифметическую оценку, необходимо использовать если оператор с [ хотя можно сделать что-то как [1-5][0-9][0-9]) echo "100 to 599" ;; видеть, ли объект в диапазоне 100 - 599 (т.е. var> =100 && var <=599). Посмотрите это для большего количества информации об арифметике в операторе выбора удара.

2
ответ дан 12 June 2017 в 07:22

Другие вопросы по тегам:

Похожие вопросы: