wegus
MU Team
Thread Starter
- Dabei seit
- 13.09.2004
- Beiträge
- 19.699
- Reaktionspunkte
- 7.553
Kennt sich jemand zufällig gut mit ZSH aus und kann hierzu etwas sagen:
Ich hatte bei der Entwicklung einer Java App und deren Test in der Shell ein merkwürdiges Verhalten:
Mein jar File startet sich vereinfacht so:
Das hier Passwörter auf der Shell übergeben werden ist nur temporär - mir ist bewußt, dass man das so nicht läßt!
Was mir nicht bewußt war, ich darf die runden Klammern so direkt nicht verwenden. Wenn Klammern im String sind, muß ich den quoten.
Daran hatte ich nicht gedacht. Und tatsächlich, wenn ich die Zeile so in einer bash eingebe bekomme ich die klare Fehlermeldung, dass das Zeichen '(' dort so nicht erlaubt sei.
Bei der ZSH passiert Merkwürdiges:
Es gibt keinen Fehler! Dafür wird aber eben auch erst gar nichts ausgeführt. Jeder weitere Start in der Shell führt zur der Fehlermeldung das '-l=/path/to/logfile' nicht existiere (was auch noch falsch ist inhaltlich). Starte ich dann irgendwann nur noch das java command mit '../path/to/java' so bekomme ich dies mit '-l=/path/to/logfile' geprompted. Auch wenn ich an java die Befehle --version z.B. anhänge. Das heißt der Befehl selbst ist gar nicht mehr nutzbar. Ich muß die ZSH schließen und eine Neue öffnen.
Ich kann mir nicht ganz erklären was da im Hintergrund eigentlich passiert und ob das ein Bug oder ein Feature ist. Vielleicht ist ein ZSH Profi zufällig hier und hat eine Idee was da passiert? Mich würde das interessieren!
Ich hatte bei der Entwicklung einer Java App und deren Test in der Shell ein merkwürdiges Verhalten:
Mein jar File startet sich vereinfacht so:
Code:
../path/to/java -jar meineApp.jar -u=user -p=12345() -l=/path/to/logfile
Das hier Passwörter auf der Shell übergeben werden ist nur temporär - mir ist bewußt, dass man das so nicht läßt!
Was mir nicht bewußt war, ich darf die runden Klammern so direkt nicht verwenden. Wenn Klammern im String sind, muß ich den quoten.
Daran hatte ich nicht gedacht. Und tatsächlich, wenn ich die Zeile so in einer bash eingebe bekomme ich die klare Fehlermeldung, dass das Zeichen '(' dort so nicht erlaubt sei.
Bei der ZSH passiert Merkwürdiges:
Es gibt keinen Fehler! Dafür wird aber eben auch erst gar nichts ausgeführt. Jeder weitere Start in der Shell führt zur der Fehlermeldung das '-l=/path/to/logfile' nicht existiere (was auch noch falsch ist inhaltlich). Starte ich dann irgendwann nur noch das java command mit '../path/to/java' so bekomme ich dies mit '-l=/path/to/logfile' geprompted. Auch wenn ich an java die Befehle --version z.B. anhänge. Das heißt der Befehl selbst ist gar nicht mehr nutzbar. Ich muß die ZSH schließen und eine Neue öffnen.
Ich kann mir nicht ganz erklären was da im Hintergrund eigentlich passiert und ob das ein Bug oder ein Feature ist. Vielleicht ist ein ZSH Profi zufällig hier und hat eine Idee was da passiert? Mich würde das interessieren!