Melaksanakan Perintah Berpaip di Golang menggunakan exec.Command
Persoalan timbul daripada keperluan untuk melaksanakan perintah paip yang panjang dengan lancar melibatkan phantomjs dan ffmpeg dalam program Golang. Perintah asal, dijalankan secara langsung di terminal, berfungsi dengan sempurna. Walau bagaimanapun, mencipta semula operasi yang sama menggunakan pakej os/exec terbukti mencabar.
Penyelesaian yang disediakan berkisar pada penggunaan fungsi exec.Command untuk memulakan arahan yang diingini. Walau bagaimanapun, pendekatan awal ini gagal mengambil kira pembatas paip, menjadikannya tidak berkesan.
Untuk menangani had ini, penyelesaian yang diubah suai menggunakan pendekatan yang lebih komprehensif dengan menggunakan jurubahasa cangkerang untuk mengendalikan arahan. Dalam kes ini, cangkerang Bash digunakan menggunakan bash, manakala perintah sebenar dirangkumkan dalam -c sebagai hujahnya. Teknik ini memperkasakan shell untuk mentafsir perintah dan melaksanakannya dengan tepat, menghormati pembatas paip.
Kod yang terhasil melaksanakan perintah paip dengan lancar dan menangkap sebarang output stdout, yang kemudiannya boleh digunakan dalam program Golang anda. Pendekatan ini menghapuskan keperluan untuk menulis fail imej perantaraan, memperkemas proses dan memastikan prestasi optimum.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Berpaip (cth., phantomjs | ffmpeg) di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!