################################################################ #### #### This function accepts an associative array variable name #### as the first command line argument, and builds an ASCII #### table of characters in that array. Array index is #### the decimal, hex, or octal number associated with the #### character. Value is the ASCII character. #### ################################################################ function mkord { typeset IDX='${CNT}' [[ "_${2}" != "_" && "_${2}" = "_8" ]] && IDX='$( printf "%o" 0x${i}${j} )' [[ "_${2}" != "_" && "_${2}" = "_16" ]] && IDX='${i}${j}' nameref ORD_TABLE=$1 typeset CNT=0 for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F do for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F do eval ORD_TABLE[${IDX}]=$(print -- $( printf "\\\0%o" 0x${i}${j} ) ) (( CNT = CNT + 1 )) done done }