2016-07-09 9 views
0

Ich versuche, mein Programm von Qt Creator mit Befehlszeilenoptionen mit Prozesssubstitution auszuführen. Hier ist der Befehl (I jede Zeile will in der Datei geschrieben mit Datum und Uhrzeit vorangestellt werden, die von predate.sh erreicht, während der Ausgang mit dem Anschluss bleibt unverändert):Qt Creator - Wie führe ich ein Programm mit Befehlszeilenargumenten mit Prozesssubstitution

$ exec | tee >(predate.sh > output.txt) 

Allerdings erhalte ich die Fehler

/bin/sh: -c: line 0: syntax error near unexpected token `(' 

Meine Standard-Shell ist Bash und die SHELL-Variable in meiner Laufumgebung ist auch/bin/bash. Dieser Befehl funktioniert, wenn ich das Programm vom Terminal ausführe, aber nicht, wenn es in Qt Creator gestartet wird.

Antwort

1

Die Prozesssubstitution ist eine Eigenschaft von bash, während QtCreator anscheinend fest codiert ist, sh zu verwenden, um den run-Befehl auszuführen. Sie können bash in Ihren Befehl wie folgt injizieren:

$ exec | bash -c 'tee >(predate.sh > output.txt)' 
+0

ausgezeichnet, funktioniert perfekt! Die Ausgabe an Terminal und Datei zu verursachen, verursachte etwas Seltsames mit den Zeilenenden auf dem Terminal, das ist jetzt vermieden. Vielen Dank –