Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Schwerpunkt<br />
Dialog<br />
den Sie Ziffern zu deren Kennzeichnung.<br />
Damit steuern Sie das Skript komfortabel<br />
über den Ziffernblock. Gehen Ihnen<br />
die Zahlen aus, verwenden Sie stattdessen<br />
Kleinbuchstaben. Bei den Test-Anweisungen<br />
behandelt das Skript die<br />
Funktionsvariable als String: Das vermeidet<br />
verwirrende Meldungen bei der Eingabe<br />
von unpassenden Zeichen. Abbildung<br />
2 zeigt das Beispiel in Aktion.<br />
Das Beispiel aus Listing 5 3 zeigt<br />
eine Maske zum Bearbeiten von Daten<br />
für eine Adressverwaltung. Für den praktischen<br />
Einsatz wären noch die Funktionen<br />
zum Holen und Sichern der Daten in<br />
einer Datenbank notwendig.<br />
Falls Sie PostgreSQL den Shell-Client<br />
psql nutzen, löschen Sie das bei der Datenabholung<br />
und Variablenbelegung<br />
enthaltene führende Leerzeichen. Mittels<br />
cut weisen Sie den Wert erst ab dem<br />
zweiten Byte der Variablen zu:<br />
b=$(psql ‐t ‐c "select name from U<br />
adressen where orgnr = 1;" | cut U<br />
‐b 2‐)<br />
Im Beispiel sprechen Sie die Datenzeilen<br />
mit Nummern und die Funktionen mit<br />
Buchstaben an. Nach jeder Änderung<br />
baut das Skript den Bildschirm neu auf.<br />
Mit Dialog<br />
Das Programm Dialog û liegt vielen aktuellen<br />
Distributionen bei. Die Anweisungen<br />
setzen sich aus Befehlen zum<br />
Gestalten der Fenster, für den Typ und<br />
Listing 3<br />
#! /bin/bash<br />
# Beispielwerte<br />
a=987,455<br />
b=987.455<br />
c="Das‐ist‐ein‐langes‐Wort"<br />
d=30<br />
# Beispiel 1<br />
# Ausgabe Fließkommazahl, Rundung auf 2 Stellen<br />
printf "%5.2f\n" $b<br />
# Beispiel 2<br />
# Ausgabe Fließkommazahl mit "falschem" Dezimaltrenner<br />
printf "%5.2f\n" `echo $a | tr , . `<br />
# Beispiel 3<br />
# Textausgabe auf zehn Zeichen gekürzt<br />
printf "%.10s\n" $c<br />
# Beispiel 4<br />
# Numerische Umwandlungen bei Darstellung:<br />
# Ganzzahl, Hexadezimalzahl, Oktalzahl<br />
printf "%i %X %o\n" $d $d $d<br />
# Beispiel 5<br />
# Numerische Ausgabe Ganzzahl,<br />
# Hexadezimalzahl (Kleinbuchstaben) mit führenden "0x"<br />
printf "%i %#x\n " $d $d<br />
Mit Format<br />
Beispiel<br />
%5.2f<br />
%.10s<br />
%X\n<br />
%x\n<br />
%#X\n<br />
%i\n<br />
Listing 4<br />
Erläuterung<br />
Fließkommazahl mit fünf Stellen vor und zwei<br />
nach dem Trenner<br />
Zeichenkette mit maximal zehn Zeichen Breite<br />
Hexadezimalzahl mit Großbuchstaben<br />
Hexadezimalzahl mit Kleinbuchstaben<br />
Hexadezimalzahl mit Großbuchstaben und führendem<br />
0X<br />
Ganzzahl (Integer)<br />
#! /bin/sh<br />
while true; do<br />
clear<br />
echo "(1) Funktion A"<br />
echo "(2) Funktion B"<br />
echo "(9) Ende"<br />
echo " "<br />
echo ‐n "Funktion auswählen: "; read f<br />
if [ "$f" = "1" ]; then<br />
echo "FUNKTION A";sleep 3<br />
elif [ "$f" = "2" ]; then<br />
echo "Funktion B";sleep 3<br />
elif [ "$f" = "9" ]; then<br />
exit<br />
fi<br />
done<br />
32<br />
www.linux-user.de<br />
03.2014