The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
конструкция case, !*! kapitonz, 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. ? спасибо.


  • конструкция case, !*! phpcoder, 11:43 , 09-Июл-07 (1)
    [...]
    >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

  • конструкция case, !*! vic, 12:32 , 09-Июл-07 (2)
    >Ребяты помогите плиз, уже почти все перепробывал: пример
    >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)




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

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