#!/bin/bash # Verzeichnis muss eventuell an den Ort der Compose angepasst werden: COMPOSE=/usr/share/X11/locale/en_US.UTF-8/Compose KEYSYM=/usr/include/X11/keysymdef.h n=10 typeset -i j=0 while [ ! "$beschreibung" ] do case ${1-" "} in " ") echo Aufruf: $0 [OPTION] BESCHREIBUNG echo »$0 --help« gibt Ihnen mehr Informationen. exit;; --help) echo Aufruf: $0 [OPTION] BESCHREIBUNG echo »$0« versucht ein Zeichen anhand einer Beschreibung zu identifizieren echo Option: echo -e " -n gibt maximal 2n statt 10 Vorschläge aus" exit;; \ ) echo $0: Kein Suchkriterium eingegeben! echo Versuchen Sie »$0 --help« für weitere Informationen. exit;; -*) n=`echo $1 | cut -c2-` shift;; *) beschreibung=${*?$0: Fehler! Versuchen Sie »$0 --help« für weitere Informationen.} esac done anzahl=`grep -iw $beschreibung $COMPOSE | head -$n | wc -l` if [ $anzahl -gt 0 ] then for i in $(seq 1 $anzahl) do j=j+1 ausgabe=1 a[$j]=`grep -iw $beschreibung $COMPOSE | grep ^\< | head -$i | tail -1 | cut -f2 -d \"` echo $j\) ${a[$j]} done fi anzahl2=`grep -i [\ _]$beschreibung[\ _] $KEYSYM | head -$n | wc -l` if [ $anzahl2 -gt 0 ] then for i in $(seq 1 $anzahl2) do c=`grep -i [\ _]$beschreibung[\ _] $KEYSYM | grep ^#define | head -$i | tail -1 | cut -f2- -d\* | cut -f2- -d+ | cut -f1 -d\ ` c1=`echo $c | cut -c1-2` c2=`echo $c | cut -c3` c3=`echo $c | cut -c4` case $c1 in 00) j=j+1 ausgabe=1 a[$j]=`echo -e \\\x${c2}` echo $j\) ${a[$j]} ;; 03) if [ "$c2" = "C" ] then j=j+1 ausgabe=1 a[$j]=`echo -e \\\xcf\\\x8${c3}` echo $j\) ${a[$j]} else j=j+1 ausgabe=1 a[$j]=`echo -e \\\xce\\\x${c2}${c3}` echo $j\) ${a[$j]} fi ;; *) ;; esac done fi if [ $ausgabe ] then read -p 'welches Zeichen suchen Sie: ' zahl echo else echo „$beschreibung“ ist unbekannt, versuchen Sie eine andere Beschreibung. exit fi if [ ${a[$zahl]} ] then wiemitneo ${a[$zahl]} fi