Funtionen

F

fdai160X

Jungspund
Kann mir jemand erklären, für was man Funktionen in der Shell Programmierung brauch ?
Stellt dies eine Modularisierung wie in Ansi C dar ?

Ich verstehe den Sinn nicht so ganz.

Welcher Code könnte man im folgenden Quelltext als Funktion deklarieren ?

#!/bin/sh
i=""
quelltext=""
MAX=""
echo "Geben Sie den Dateinamen ein: "
read quelltext
echo "Geben Sie die maximalen Compilerdurchgänge an: "
read MAX
if test -e "$quelltext"
then
echo "Datei vorhanden"
chmod 755 $quelltext
if (file $quelltext | grep "ASCII C" > /dev/null)
then
if (find \. -maxdepth 1 -type f -name "$quelltext" | grep "\.c\>" > /dev/null)
then echo "Dateiendung vorhanden"
i=1
while [ $i -le $MAX ]
do
if (gcc -o a.out "$quelltext" 2>> fehler)
then i=`expr $i \+ $MAX`
echo "Kompilierung erfolgreich"
echo "Starte Binärcode"
a.out
else
echo "Kompilierungsfehler: Starte VI"
vi $quelltext
i=`expr $i \+ 1`
fi
done
else echo "Dateiendung angehängt"
mv "$quelltext" "${quelltext}.c"
i=1
while [ $i -le $MAX ]
do
if (gcc -o a.out "${quelltext}.c" 2>> fehler)
then i=`expr $i \+ $MAX`
echo "Kompilierung erfolgreich"
echo "Starte Binärcode"
a.out
else
echo "Kompilierungsfehler: Starte VI"
vi "${quelltext}.c"
i=`expr $i \+ 1`
fi
done
fi
else echo "Es handelt sich um keine ANSI C Datei"
fi
else echo "Datei nicht vorhanden"
fi​
 
loes deine hausaufgaben bitte selber. oder verwend google, wikipedia und co.
 
Hm, Funktionen kannste dir als "inline"-Shellskripte denken.
Braucht man das? Ich find's ganz praktisch.
 
Du brauchst dich ja damit nicht beschäftigen !

//ignore
 
na hoffentlich schreibst du dir genug schummler fuer deine klausuren.
 
Also Hausaufgaben sollte man schon allein Erledigen - Denkhilfen sind kein Thema, aber die komplett Lösung gibts hier definitiv NICHT !
 
Wir haben mit Shell Prog gerade erst angefangen.
Und wie gesagt, ich brauche antworten und keine dummen Komentare, wenn Ihr unterfordert seid.

Jedenfalls könnte man zumindest mal Seite empfehlen mit denen man auch was anfangen kann.

Achso, oben aufgeführter Code habe ich selbst geschrieben. Soviel zur Komplettlösung.

Ich möchte lediglich wissen, für was Funktionen gut sind. Verstehe den Sinn nicht darin.
 
Zuletzt bearbeitet:
also wenn _du_ keine Lust hast, können _wir_ doch nichts dafür :).
 
ok, nochmal :
google.de
google.ch
google.at
google.fr
google.ca
etc.

und wikipedia.

ernsthaft : wenn du daran scheiterst, solltest du die richtung wechseln.
btw.:
Achso, oben aufgeführter Code habe ich selbst geschrieben. Soviel zur Komplettlösung.
das ist nicht glaubwuerdig, wenn du nicht weißt was schleifen sind.
 
Zuletzt bearbeitet:
Ich rede hier nicht von Schleifen, sondern von Funktionen in der Shell Programmierung.
 
fdai160X schrieb:
Ich möchte lediglich wissen, für was Funktionen gut sind. Verstehe den Sinn nicht darin.
Na dann lies dir doch mein erstes Posting in diesem Thread durch.
Da habe ich es doch erklärt.

Wenn du so unsere Antworten liest...
 
ok, die falle hat versagt. meine ausage gilt aber auch fuer funktionen.

erklaer uns doch mal warum du zu faul bist in wikipedia nachzuschlagen.
 
Da finde ich nicht das,was ich über Funktionen suche.
Im Netz steht auch nichts. Aber egal.
 
Hallo

Ein simples:
help function
function: function NAME { COMMANDS ; } or NAME () { COMMANDS ; }
Create a simple command invoked by NAME which runs COMMANDS.
Arguments on the command line along with NAME are passed to the
function as $0 .. $n.
Gibt dir schonmal Auskunft was Funktionen (hier in der bash) sind.
Du fasst damit einfach wiederkehrende Codestücke zusammen.
Wo du diese in deinem Code sinnvoll verwenden könntest, solltest du leicht selber rausfinden.
Such einfach nach wiederkehrenden Situationen und versuch diese zusammenzufassen.

Die Bedeutung ist übrigens in der Shell genauso wie in Programmiersprachen (C,java...)oder Scriptsprachen (PHP,javascript).
Lediglich die Syntax ist variabel.
Du kannst dir eigene Funktionen definieren, und auch auf fest eingebaute (Buildin) zurückgreifen.
Wie diese zu definieren sind, findest du in der Manpage.

Das mal so als Denkanstoß.
Darüber Material zu finden, sollte einfach sein.

Gruß Wolfgang
 
sprich, das kannst du direkt als Antwort in dein Hausaufgabenheft schreiben, gell ? :)
 

Ähnliche Themen

Switche abfragen über Script

If-Abfrage kommt nicht positiv zurück, obwohl Kriterium erfüllt

Verschlüsseltes Backup-Script mit rsync

script sshpass

Shell Skript beschleunigen

Zurück
Oben