S. Table ASCII

Dans un livre de ce type, il est traditionnel d'avoir une annexe comprenant une table ASCII. Pas dans ce livre. À la place, voici un petit script shell qui génère une table ASCII complète et l'écrit dans le fichier ASCII.txt.

Exemple S.1. Un script qui génère une table ASCII

#!/bin/bash
# ascii.sh

# Script de Sebastian Arming.
# Légèrement modifié par l'auteur du guide ABS.
# Utilisé avec sa permission (merci !).

exec >ASCII.txt         #  Sauvegarder stdout dans un fichier,
                        #+ comme dans les scripts exemples
                        #+ reassign-stdout.sh et upperconv.sh.

MAXNUM=256
COLUMNS=5
OCT=8
OCTSQU=64
LITTLESPACE=-3
BIGSPACE=-5

i=1 # Compteur décimal
o=1 # Compteur octal

while [ "$i" -lt "$MAXNUM" ]; do
        paddi="    $i"
        echo -n "${paddi: $BIGSPACE}  "    # Espacement de colonnes.
        paddo="00$o"
        echo -ne "\\${paddo: $LITTLESPACE}"
        echo -n "     "
        if (( i % $COLUMNS == 0)); then    # Nouvelle ligne.
           echo
        fi
        ((i++, o++))
        # La notation octale pour 8 est 10 et pour 80 est 100.
        (( i % $OCT == 0))    && ((o+=2))
        (( i % $OCTSQU == 0)) && ((o+=20))
        # Nous ne devons pas compter après 0777.
done

exit 0