Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Linux для начинающих

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.01.2015, 11:25   #2
uni
Senior Member
 
Аватар для uni
 
Регистрация: 29.10.2013
Адрес: Екатеринбург, Нижневартовск, Энергодар
Возраст: 43
Сообщений: 573
Вес репутации: 599
uni has a spectacular aura aboutuni has a spectacular aura about
Отправить сообщение для uni с помощью ICQ
По умолчанию Re: Массивы в sh в минироутерах на openwrt

Насколько я знаю, поддержки массивов нет, но в некоторых случаях можно обойтись без них:

Код:
# Расчёт CRC16.
crc () {

    # Преобразуем выражение в строку.
    str="$1"
    
    # Расчитываем количество циклов.
    cnt=$((${#1}-2))
    
    # Начальное значение.
    crc=0xFFFF

    for i in `seq 0 2 $cnt`; do

        crc=$(( crc ^ 0x${str:$i:2} ))

        for j in `seq 0 7`; do

            c=$(( crc >> 1 ))

            if [ $(( crc & 1 )) = 1 ]; then                 

                let 'c ^= 0xA001'
            fi

            crc=$c

        done

    done
    
    # Меняем местами байты.
    c=$(( crc & 0xFF ))
    c=$(( c << 8 ))
    crc=$(( crc >> 8 ))
    crc=$(( crc + c ))

    # Переводим в hex вид.
    printf "%04X" $crc
}
__________________
Россия навсегда!
uni вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:24. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика