1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/bin/sh value="$1" offset=$((16#${value:0:2})) n=2 final="" while [ $n -lt ${#value} ]; do num=${value:n:3} charAscii=$((16#$num - $offset)) final="$final$(printf \\u$(printf "%03x" $charAscii))" n=$((n + 3)) done echo "$final"