mirror of https://github.com/tLDP/LDP
47 lines
1.2 KiB
Bash
47 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# ascii.sh
|
|
# ver. 0.2, reldate 26 Aug 2008
|
|
# Patched by ABS Guide author.
|
|
|
|
# Original script by Sebastian Arming.
|
|
# Used with permission (thanks!).
|
|
|
|
exec >ASCII.txt # Save stdout to file,
|
|
#+ as in the example scripts
|
|
#+ reassign-stdout.sh and upperconv.sh.
|
|
|
|
MAXNUM=256
|
|
COLUMNS=5
|
|
OCT=8
|
|
OCTSQU=64
|
|
LITTLESPACE=-3
|
|
BIGSPACE=-5
|
|
|
|
i=1 # Decimal counter
|
|
o=1 # Octal counter
|
|
|
|
while [ "$i" -lt "$MAXNUM" ]; do # We don't have to count past 400 octal.
|
|
paddi=" $i"
|
|
echo -n "${paddi: $BIGSPACE} " # Column spacing.
|
|
paddo="00$o"
|
|
# echo -ne "\\${paddo: $LITTLESPACE}" # Original.
|
|
echo -ne "\\0${paddo: $LITTLESPACE}" # Fixup.
|
|
# ^
|
|
echo -n " "
|
|
if (( i % $COLUMNS == 0)); then # New line.
|
|
echo
|
|
fi
|
|
((i++, o++))
|
|
# The octal notation for 8 is 10, and 64 decimal is 100 octal.
|
|
(( i % $OCT == 0)) && ((o+=2))
|
|
(( i % $OCTSQU == 0)) && ((o+=20))
|
|
done
|
|
|
|
exit $?
|
|
|
|
# Compare this script with the "pr-asc.sh" example.
|
|
# This one handles "unprintable" characters.
|
|
|
|
# Exercise:
|
|
# Rewrite this script to use decimal numbers, rather than octal.
|