Unix Aufgabe

  • Hi


    ich hab eine Aufgabe bezüglich Unix Skripts bekommen, jedoch komm ich da nicht ganz mit der Aufgabe klar bzw. wie ich die Lösung machen soll.


    Ich soll $1 verwenden, weiß jedoch überhaupt nicht, was ich damit mache muss...


    ________________________________
    Aufgabe lautet wie folgt:


    Kopieren Sie alle .c-Dateien des als Parameter übergebenen Verzeichnisses in ein neu zu erstellendes Verzeichnis ~/tmp/work


    Behandeln Sie die Fehlermöglichkeiten (tmp nicht da; work nicht da; eines von beiden kein Verzeichnis; work nicht leer) durch entsprechende Fehlermeldungen.


    Kompilieren Sie die kopierten Dateien.


    Testen Sie, ob die Programme ausführbar sind.


    ________________________________


    Das ist das, was ich schon habe:



    gcc 1.c --> zum kompilieren


    zum Testen:


    test -x a.out wenn nein, dann soll eine Ausgabe „Problemmeldung“ erscheinen



    Hilfe: man basename




    if


    mkdir -p $HOME/tmp/work
    cp $1/*.c $HOME/tmp/work
    cd $HOME/tmp/work
    for I in *.c ; do
    gcc $i


    bei den ... weiß ich einfach nicht, was da noch hingehören soll.
    Hoffe, dass mir jemand helfen kann.

  • $1 ist der erste Übergabeparameter. Das heißt, wenn du dein Programm startest gibst du ein Parameter mit und mit $1 sprichst du den ersten Parameter an.
    Du könntest das Kommando find verwenden.


    find $1 -name ".c" .. So würde ich mir das vorstellen. mit -print könntest du noch die Ausgabe von find ausgeben.
    Danch müsstest du die nur noch in dein work Ordner rein kopieren.

  • Edit: Fehler gefunden


    Die originalen *.c Dateien hatten als Inhalt nur test und ich hab bei den kopierten Dateien als Inhalt einen richtigen Source Code (also ein .c Programm) eingegeben. Folge --> Die kopierten Dateien wurden mit dem Inhalt "test" überschrieben und die Fehlermeldung kam, dass der Source Code falsch ist. X(


    Jedenfalls klappt das Programm jetzt einwandfrei :)


    Problem gelöst --> Thread closen bitte


    ____________________________________


    Kompletter Source Code



    jedoch kommt diese Fehlermeldung


    Code
    1. dokument1.c:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input
    2. dokument1.oc is executable
    3. dokument2.c:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input
    4. dokument2.oc is executable
    5. tx2.c:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input
    6. tx2.oc is executable