diff options
Diffstat (limited to 'ean13')
-rwxr-xr-x | ean13 | 22 |
1 files changed, 0 insertions, 22 deletions
@@ -1,22 +0,0 @@ -#!/bin/bash -while [[ $1 ]] -do -[[ ${#1} -eq 13 ]] || [[ ${#1} -eq 12 ]] || { - printf >&2 'length is %d, should be 13\n' ${#1} - exit 1 -} -declare -i checksum=0 -declare -i factor=1 -for i in {0..11} -do - v=${1:i:1} - checksum=$((checksum+factor*v)) - factor=$((factor^2)) -#printf >&2 'v: %s : cs=%d f=%d\n' "$v" $checksum $factor -done -if [[ ${#1} -eq 12 ]] -then echo "$1"$((10-checksum%10)) -else [[ $((10-checksum%10)) -eq ${1:12} ]] || exit -fi -shift -done |