The OpenNET Project / Index page

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

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

"Диапазоны в if(bash)"  +/
Сообщение от anonymous (??) on 31-Авг-11, 00:37 
Доброго времени суток! Никак не могу найти, как же указывать диапазоны в sh/bash(желательно - в sh, без башизмов). В частности, четные/нечетные диапазоны, либо проверка числа на четность/нечетность вообще. Пробовал типа
if [ $i -eq {0..30..2} ]; then
....
fi
Толку чуть. Есть адекватное решение?
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Диапазоны в if(bash)"  +/
Сообщение от Аноним (??) on 31-Авг-11, 07:05 
Доброго времени!
Мы знаем, что чётное число делится нацело на два.
В posix shell арифметические операции производятся следующим образом:
$((num_1 operator num_2))
Пример: echo $((2/1))
В bourne shell арифметические операции производятся следующим образом:
expr num_1 operator num_2
Пример: expr 2 / 1
info coreutils 'expr invocation' man expr


#!/bin/sh
for num in -1 0 1 2 3 4 5; do
if [ $num -eq $((num/2*2)) ];
then echo "$num - чётное число";
else echo "$num - нечётное число";
fi
done

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Диапазоны в if(bash)"  +/
Сообщение от anonymous (??) on 31-Авг-11, 07:54 
>[оверквотинг удален]
> expr num_1 operator num_2
> Пример: expr 2 / 1
> info coreutils 'expr invocation' man expr
> #!/bin/sh
> for num in -1 0 1 2 3 4 5; do
> if [ $num -eq $((num/2*2)) ];
> then echo "$num - чётное число";
> else echo "$num - нечётное число";
> fi
> done

Спасибо большое. Чувствую себя идиотом)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Диапазоны в if(bash)"  +/
Сообщение от Andrey Mitrofanov on 21-Сен-11, 09:11 
:) Не каждый анонимоус долетит до середины man bash.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Диапазоны в if(bash)"  +/
Сообщение от jd (??) on 21-Сен-11, 10:32 
%
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Диапазоны в if(bash)"  +/
Сообщение от омоним on 21-Сен-11, 08:33 
> Доброго времени суток! Никак не могу найти, как же указывать диапазоны в
> sh/bash(желательно - в sh, без башизмов). В частности, четные/нечетные диапазоны, либо
> проверка числа на четность/нечетность вообще. Пробовал типа
> if [ $i -eq {0..30..2} ]; then
> ....
> fi
> Толку чуть. Есть адекватное решение?

man seq

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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