Verder Terug Inhoud

7. Speciale Tekens: Octale Escape Sequences

Buiten de tekens die je op je toetsenbord in kunt tikken, zijn er nog heel wat andere tekens die je op je scherm af kan drukken. Ik heb een script gemaakt waarmee het mogelijk is dat je kunt controleren wat het font dat je gebruikt, beschikbaar voor je heeft. Het belangrijkste commando dat je nodig hebt om deze tekens aan te passen is "echo -e". De "-e" switch vertelt echo de interpretatie van tekens voorafgegaan door een escape-teken, de backslash, te activeren. Wat je te zien krijgt wanneer je naar octaal 200-400 kijkt zal heel anders zijn met een VGA-font dan wat je te zien krijgt met een standaard Linux-font. Wees gewaarschuwd dat een aantal van deze escape sequences vreemde effecten hebben op je terminal, en ik heb het niet geprobeerd om datgene te voorkomen wat ze dan ook plegen te doen. De tekens voor het trekken van lijnen en tekenen van blokken (waar velen van ons bekend mee werden door WordPerfect) die veel door het Bashprompt project worden gebruikt, bevinden zich tussen octaal 260 en 337.


#!/bin/bash

#   Script: escgen

function usage {
   echo -e "\033[1;34mescgen\033[0m <lower_octal_value> [<higher_octal_value>]"
   echo " Octal escape sequence generator: druk alle octale escape sequences af"
   echo " tussen de lagere waarde en de hogere waarde. Als er geen tweede 
        " waarde  wordt opgegeven, druk dan acht tekens af."
   echo " 1998 - Giles Orr, geen garantie."
   exit 1
}

if [ "$#" -eq "0" ]
then
   echo -e "\033[1;31mGeef alsjeblieft een of twee waarden op.\033[0m"
   usage
fi
let lower_val=${1}
if [ "$#" -eq "1" ]
then
   #   Als er geen afsluitende waarde wordt opgegeven, geef ze dan 8 tekens.
   upper_val=$(echo -e "obase=8 \n ibase=8 \n $lower_val+10 \n quit" | bc)
else
   let upper_val=${2}
fi
if [ "$#" -gt "2" ]
then 
   echo -e "\033[1;31mGeef alsjeblieft twee waarden op.\033[0m"
   echo
   usage
fi
if [ "${lower_val}" -gt "${upper_val}" ]
then
   echo -e "\033[1;31m${lower_val} is groter dan ${upper_val}."
   echo
   usage
fi
if [ "${upper_val}" -gt "777" ]
   then
   echo -e "\033[1;31mWaarden kunnen de 777 niet overschrijden.\033[0m"
   echo
   usage
fi

let i=$lower_val
let line_count=1
let limit=$upper_val
while [ "$i" -lt "$limit" ]
do
   octal_escape="\\$i"
   echo -en "$i:'$octal_escape' "
   if [ "$line_count" -gt "7" ]
   then 
      echo
      #   Voeg een harde return in.
      let line_count=0
   fi
   let i=$(echo -e "obase=8 \n ibase=8 \n $i+1 \n quit" | bc)
   let line_count=$line_count+1
done
echo

Je kunt ook xfd gebruiken om alle tekens van een X-font te tonen, met het commando, "xfd -fn <fontname>". Het klikken op een gegeven teken zal je heel veel informatie, waaronder de octale waarde, over dat teken geven. Het gegeven script van hierboven zal nuttig zijn voor op de console en als je niet zeker bent van de naam van het huidige font.


Verder Terug Inhoud