2012-04-06 11 views
3

ich bespannen wollen zusammen einige Shell-Befehle mit && - zum BeispielEmacs Lisp - wie man `&&` Shell eingibt?

wget -c http://repository/file.tar.gz && tar -xzvf file.tar.gz && rm file.tar.gz 

Normalerweise würde ich start-process verwenden, aber diese Funktion scheint durch die && verwechselt werden. Ich kann die drei Befehle nur nacheinander ausführen, aber in diesem Fall, wie in vielen anderen, möchte ich sicherstellen, dass der erste Befehl nicht fehlerhaft abgebrochen wurde, bevor der zweite Befehl ausgeführt wurde, und so weiter.

Pythons subprocess.call Funktion ein shell=True Argument, mit dem Sie einfach die ganze Zeile senden - gibt es eine solche Funktion in Emacs Lisp, oder in diesem Fall, dass ich für eine andere Abhilfe aussehen sollte?

+0

Was ist mit ";"? – m0skit0

+0

können Sie mit einfacheren Befehlen testen: echo 1 && echo 2 && echo 3'. Ich würde versuchen, die '&' s wie '\ & \ &' zu umgehen. Viel Glück. – shellter

+0

Ich denke, das Problem ist, dass '&&' und ';' nicht als Argumente für den 'Prozess' erkannt werden, der aufgerufen wird ... – hatmatrix

Antwort

2

Wahrscheinlich möchten Sie shell-command verwenden.

+0

Vergiss dies ... – hatmatrix