Heim > Backend-Entwicklung > Golang > Wie kann ich Piped-Befehle (z. B. phantomjs | ffmpeg) in Golang ausführen?

Wie kann ich Piped-Befehle (z. B. phantomjs | ffmpeg) in Golang ausführen?

Patricia Arquette
Freigeben: 2024-11-21 06:54:13
Original
479 Leute haben es durchsucht

How Can I Execute Piped Commands (e.g., phantomjs | ffmpeg) in Golang?

Ausführen von Piped-Befehlen in Golang mit exec.Command

Die Frage ergibt sich aus der Notwendigkeit, einen langen Piped-Befehl mit Phantomjs und ffmpeg nahtlos auszuführen innerhalb eines Golang-Programms. Der ursprüngliche Befehl, der direkt im Terminal ausgeführt wird, funktioniert einwandfrei. Es erweist sich jedoch als schwierig, denselben Vorgang mit dem Paket os/exec erneut zu erstellen.

Die bereitgestellte Lösung besteht darin, die Funktion exec.Command zu verwenden, um den gewünschten Befehl zu initiieren. Allerdings berücksichtigt dieser erste Ansatz das Pipe-Trennzeichen nicht und ist daher unwirksam.

Um diese Einschränkung zu beheben, verwendet die modifizierte Lösung einen umfassenderen Ansatz, indem sie einen Shell-Interpreter zur Verarbeitung des Befehls aufruft. In diesem Fall wird die Bash-Shell mit bash aufgerufen, während der eigentliche Befehl in -c als Argument gekapselt ist. Diese Technik ermöglicht es der Shell, den Befehl zu interpretieren und unter Berücksichtigung des Pipe-Trennzeichens genau auszuführen.

Der resultierende Code führt den Pipe-Befehl nahtlos aus und erfasst alle Standardausgaben, die dann in Ihrem Golang-Programm verwendet werden können. Dieser Ansatz macht das Schreiben von Zwischenbilddateien überflüssig, was den Prozess rationalisiert und eine optimale Leistung gewährleistet.

Das obige ist der detaillierte Inhalt vonWie kann ich Piped-Befehle (z. B. phantomjs | ffmpeg) in Golang ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage