Shell-Skriptum erstellen ( Anfänger der Stufe 0 )

B

biggie

Grünschnabel
Hallo erstmals . Seit kurzen arbeiten wir an der Uni mit UNIX und schon hagelt es von Aufgaben .

Aufgabenstellung :
|
|-- WS2003a
| |--ausertest.bash
| |--ask12.bash
| |--noskript.jpg
|...

Der Befehl "renamecontents sortedskripts bash"
Bennent die Dateinamen wie folgt um:
./sorted_skipts
|
|-- WS2002
| |--WS2002skript1.bash
| |--WS2002skript2.bash
| |--noskript.jpg
|
|-- WS2003a
| |--WS2003ausertest.bash
| |--WS2003ask12.bash
| |--noskript.jpg
|...

Die Option --help gibt eine Versionnummer mit Ihrem Namen und Ihre Matrikelnummer in Folgender form aus: "V01.01 Vorname Nachname Personenkennzeichen"

Fehlerbehandlung: Sollte es während des Ausführens des Skripts zu einem nicht-lösbaren Fehler kommen, so muss eine Zeile ausgegeben werden die den Fehler beschreibt. Diese kann beliebig gewählt werden. Anschließend muss eine weitere Meldung in der Form: <skript_name>: abort due to fatal error. augegeben werden. Beide Fehlermeldungen sind auf den File-deskriptor von Stderr zu schreiben.
-----------------------------------------------------------------------------
Ich hab absolut keinen Plan wie ich da vorgehen soll . Ich würd mich schon über Denkanstöße freuen
 
Google mal nach "Adavanced Bash Scripting Guide".

Üblicherweise sind aber Dinge, die man in den Übungen braucht vorher in der Vorlesung besprochen worden - das Scriptum sollte da also eigentlich auch genügend her geben.
 
Zunächst bedank ich mich für die Hilfe , allerdings bin ich noch am grübeln wie ich das genau machen soll . Muss ich jetzt die Befehle extra in ein Shell-Skript verpacken , oder sind die von Haus aus in dem System integriert . Muss ich nur ein Skript zur Fehlerausgabe erstellen ?? Was hat es mit dem [Die Option --help gibt eine Versionnummer ... ] auf sich ? Fragen über Fragen . Irgendwie kennt sich da keiner von meinen Studienkollegen wirklich gut aus
 
Nein, du musst ein Script mit den Befehlen erstelle, die das machen, was Du willst - also das umbenennen, die Fehlerausgabe, das übernehmen der Eingabeparameter...

Tiefergehende Gedanken behalte ich mal besser für mich...
 
also das programm hab ich wie folgt geschrieben :

#! /bin/bash

if [ $# -gt 2 ]; then
echo "$0: too many arguments" 1>&2
echo "$0: abort due to fatal error." 1>&2
elif [ $# -lt 1 ]; then
echo "$0: too few arguments" 1>&2
echo "$0: abort due to fatal error." 1>&2
else
if [ $# -eq 2 ]; then
for i in $(find $1 -name *.$2); do
mv "$i" "$i";
done
elif [ "$1" == "--help" ]; then
echo "V01.01 Vorname Nachname Personalkz."
else
echo "$0: invalid option $1" 1>&2
echo "$0: abort due to fatal error." 1>&2
fi
fi




... Allerdings ändert er die Datei mit dem eigenen Dateinamen um . Frage : Wie kann ich das so machen , das er es mir in das Suborderfile umbenennt .
 
naja, bei einem mv $i $i ist ja auch nichts anderes zu erwarten :-)

Du suchst vermutlich dirname oder basename, je nach Wunsch - und evtl. noch ein sed oder cut dazu.
 
Zurück
Oben