Насколько я знаю, поддержки массивов нет, но в некоторых случаях можно обойтись без них:
Код:
# Расчёт 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
}