Melaksanakan Perintah dengan Berbilang Argumen
Apabila melaksanakan arahan dalam Go, adalah penting untuk memberi perhatian kepada cara hujah dihantar kepada arahan. Isu terbaharu yang dihadapi oleh pengguna ialah melaksanakan perintah "atas" dengan argumen tertentu berfungsi daripada konsol tetapi gagal apabila menggunakan pakej exec.
Masalahnya
Kod pengguna, yang berjaya melaksanakan "top -n 10 -l 2", gagal melaksanakan "top -o cpu -n 10 -l 2". Mesej ralat yang disediakan oleh pakej exec menunjukkan bahawa hujah "-o cpu" adalah tidak sah.
Penyelesaian
Isunya terletak pada cara hujah dihantar kepada perintah itu. Jurubahasa baris arahan pada konsol secara automatik memisahkan hujah, membenarkan arahan menghuraikannya dengan betul. Walau bagaimanapun, apabila menggunakan pakej exec, hujah mesti dipisahkan secara eksplisit.
Untuk kes tertentu ini, kod yang betul ialah:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
Dengan memisahkan hujah, pakej exec boleh serahkan mereka kepada arahan seperti yang diharapkan, menyelesaikan ralat.
Atas ialah kandungan terperinci Mengapa My Go `exec.Command` Gagal dengan Berbilang Argumen Apabila Perintah yang Sama Berfungsi dalam Konsol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!