Exécuter des commandes canalisées dans Golang à l'aide de exec.Command
La question se pose de la nécessité d'exécuter de manière transparente une longue commande canalisée impliquant phantomjs et ffmpeg dans un programme Golang. La commande originale, exécutée directement dans le terminal, fonctionne parfaitement. Cependant, recréer la même opération à l'aide du package os/exec s'avère difficile.
La solution fournie consiste à utiliser la fonction exec.Command pour lancer la commande souhaitée. Cependant, cette approche initiale ne prend pas en compte le délimiteur de canal, ce qui le rend inefficace.
Pour remédier à cette limitation, la solution modifiée utilise une approche plus complète en appelant un interpréteur shell pour gérer la commande. Dans ce cas, le shell Bash est invoqué en utilisant bash, tandis que la commande réelle est encapsulée dans -c comme argument. Cette technique permet au shell d'interpréter la commande et de l'exécuter avec précision, en respectant le délimiteur de canal.
Le code résultant exécute de manière transparente la commande canalisée et capture toute sortie stdout, qui peut ensuite être utilisée dans votre programme Golang. Cette approche élimine le besoin d'écrire des fichiers image intermédiaires, rationalisant ainsi le processus et garantissant des performances optimales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!