neo-layout/linux/bin/beschreibe

97 lines
2.0 KiB
Bash
Executable File

#!/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