12.01.2015, 11:25 | #2 |
Senior Member
|
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 }
__________________
Россия навсегда! |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|