26.02.2014 Aufrufe

LinuxUser Optimale Skripte (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!