Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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

Quellcode: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.
zum Seitenanfang zum Seitenende 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.

--

zum Seitenanfang zum Seitenende Profil || Suche