000
11.12.2007, 09:55
LeJean
|
Tach,
Ich hab hier unter Ubuntu ein kleines Shellscript, das nach nem übergebenen Parameter eine bestimmte Operation durchführt
cd parsers bison rep$1.y -d flex rep$1.l cc lex.yy.c rep$1.tab.c -lfl mv ./a.out ./rep$1.out ./rep$1.out < ../reports/REP$1"_"* | mysql -u user --password=passwort dbname
Das Teil soll folgendes machen: Der Übergabeparameter ist eine Zahl, dann werden die entsprechenden lex und yacc (bzw. flex und bison) parser kompiliert, die Output-Binary umbenannt und dann soll diese ausgeführt werden. Im Verzeichnis ../reports/ liegen Files mit den Namen REP1_... REP2_... etc. die je nach Übergabeparameter gewählt werden sollen. In der letzten Zeile bekomm ich den Fehler ./run.sh: line 6: ../reports/REP$1"_"*: ambiguous redirect
Ich hab gelesen, dass das mit dem Operator zur Umlenkung der Eingabe ("<") zusammenhängt, kann mir aber gerade nicht helfen, denn: Wenn ich ./run.sh 1 oder ./run.sh 2 ausführe, funktioniert das Script problemlos. Will ich aber als Parameter die 3 haben, krieg ich o.g. Fehler. Man könnte jetzt meinen, dass /REP3_* keine eindeutige File referenziert, doch das ist der Fall, es gibt nur eine File die so anfängt. Edit: auch ohne Anführungszeichen um den Unterstrich ergibt sich keine Besserung.
Jemand ne Ahnung woran das noch liegen könnte? MfG, Jean
--
Dieser Beitrag wurde am 11.12.2007 um 09:59 von LeJean bearbeitet.
|
|
Profil || Suche
|
001
11.12.2007, 10:28
hausi
|
Mach mal oben am Befehl ein echo ../reports/REP$1"_"* hin, dann siehst du, was die Bash alles findet. Der Fehler sollte eigentlich nur kommen, wenn du mehrere Files hast.
--
|
|
Profil || Suche
|