The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"конструкция case"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"конструкция case"  
Сообщение от kapitonz on 09-Июл-07, 10:54 
Ребяты помогите плиз, уже почти все перепробывал: пример
case var1 in
<1-5>)
echo qqqq
;;
<6-10>)
echo www
;;
esac
В текущем примере когда выбираешь от 1 до 5ти выводится qqq, когда от 6 до 10 выводится www. Все работает, НО при следующей записи:
a=1
b=5
c=6
d=10
case var1 in
<$a-$b>)
echo qqqq
;;
<$c-$d>)
echo www
;;
esac
Уже ни чего не работает, и выводится следующая ошибка ./test.sh:6: parse error near `<'
Все делается под zsh. Перепробывал почти все ковычки служебные знаки, ни чего не изменяется. Написано вроде нужно переменные брать в (), результат тот же. Как бы использовать переменные в строках выбора конструкции case. ? спасибо.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "конструкция case"  
Сообщение от phpcoder email(??) on 09-Июл-07, 11:43 
[...]
>a=1
>b=5
>c=6
>d=10
>case var1 in
><$a-$b>)
>echo qqqq
>;;
><$c-$d>)
>echo www
>;;
>esac
[...]

Я бы использовал if и не заморачивался :)

if [ $var1 -ge $a -a $var1 -le $b ]; then
   ...
elif [ $var1 -ge $c -a $var1 -le $d ]; then
   ..
fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "конструкция case"  
Сообщение от vic (??) on 09-Июл-07, 12:32 
>Ребяты помогите плиз, уже почти все перепробывал: пример
>case var1 in
><1-5>)echo qqqq ;;
><6-10>) echo www ;;
>esac
>В текущем примере когда выбираешь от 1 до 5ти выводится qqq, когда
>от 6 до 10 выводится www.

Пример не работает, должны быть квадратные скобки, а не угловые.

С переменными при использовании квадратных скобок (см. man bash, это ведь pattern):
#!/bin/bash
a=1
b=5
c=6
d=10
case var1 in
[$a-$b]) echo qqqq  ;;
[$c-$d]) echo www   ;;
esac

работает (Linux, bash --version: 3.1.17)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "конструкция case"  
Сообщение от kapitonz on 09-Июл-07, 12:52 
И правда, с квадратными все ок! спасибо.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру