Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Klausur!!!prüngen sie selbst :D

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sunset
Gast





BeitragVerfasst am: 04. Jan 2005 20:58   Titel: Klausur!!!prüngen sie selbst :D

Beschreiben Sie die Aufgabe/Funktion der nachstehenden Kommandodatei,indem Sie zuvor die einzelnen Befehle und ihre Auflösung durch die Kornshell erläutern.
1 #!/usr/bin/ksh
2
3 pick1() {
4 eval 'echo $' "$pick_index"
6 }
7 pick() {
8 0LD_IFS=IFS
9 delimiter="$1"
10 shift
11 pick_index="$1"
12 shift
13 IFS=" "$delimiter
14 pick1 $*
15 IFS=$OLD_IFS
16 unset pick_jndex
17 }
t c
19 version=$(uname -r)
20 echo $(pick . 1 $version).$(pick . 2 $version)

Vile Spaß Shocked
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 05. Jan 2005 9:10   Titel:

Nun, ohne es eingetippt zu haben, würde ich einfach mal sagen, dass die Funktion pick von einer gegebenen Zeichenkette (3. Argument) das Feld mit Nummer X (2. Argument) ausgibt. Felder werden durch das Trennzeichen (1. Argument) definiert.

Im übrigen steckt ein Bug in der Funktion: In Zeile 8 muss es
Code:
OLD_IFS="$IFS"
heissen. Und da der Inhalt von delimiter auch ein Space oder Tab sein könnte, sollte man es immer in "" einschliessen, also Zeile 13 wie folgt korrigieren:
Code:
IFS=" $delimiter"
Und zu guter Letzt bitte das Zurücksetzen des IFS ebenfalls mit "" verzieren:
Code:
IFS="$OLD_IFS"
So. Wenn nun explizit die ksh verlangt wird, sollte man aber auch die ksh-Features nutzen! So verwendet die Funktion pick beispielsweise die Variablen OLD_IFS, delimiter und pick_index. So wie geschrieben sind das alles globale Variablen, was jede Mende nette Nebeneffekte auslösen kann, wenn gleichlautende Variablen noch irgendwo später im Skript vorkommen. Daher diese Variablen bitte lokal zur Funktion machen! Das ist sogar ganz einfach; es reicht eine Zeile 7.5:
Code:
typeset OLD_IFS delimiter pick_index
So weit, so gut. Jetzt hätte ich aber gerne von Dir gewusst, ob Du eine konkrete Frage zu dem Skript hast, einfach nur gerne eine Referenz-Erklärung gehabt hättest oder das ganze zur Unterhaltung gepostet hast? Dann hätte es nämlich besser in "Fun&Joke" oder Smalltalk" gepasst.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

GehtsNoch
Gast





BeitragVerfasst am: 06. Jan 2005 14:43   Titel:

Sag mal schlaft ihr for euren pc oder wie !!! wo möglich noch mit ihnen oder???
 

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 07. Jan 2005 0:05   Titel:

> Sag mal schlaft ihr for euren pc oder wie !!! wo möglich noch mit ihnen oder???
Nicht immer. Hin und wieder verwenden wir etwas Zeit auf den korrekten Umgang mit unserer Muttersprache.
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy