Melaksanakan Perintah Linux Terbina Dalam daripada Go
Apabila cuba menentukan kehadiran program pada Linux menggunakan exec.Command(" perintah", "-v", "foo") sintaks, anda mungkin menghadapi ralat yang menyatakan bahawa "perintah" tidak ditemui dalam $PATH. Ini kerana "arahan" ialah Linux Shell terbina dalam intrinsik, bukan binari boleh laku.
Untuk melaksanakan arahan terbina dalam daripada Go, anda mempunyai beberapa pilihan:
1. Menggunakan exec.LookPath:
Seperti yang dicadangkan dalam artikel yang disediakan, anda boleh menggunakan fungsi exec.LookPath untuk mencari $PATH untuk arahan yang perlu anda laksanakan.
path, err := exec.LookPath("command") if err != nil { // Handle error } // Use path to execute the command
2. Menggunakan Invocation Shell Luaran:
Sebagai alternatif, anda boleh menggunakan arahan dari dalam shell menggunakan sintaks berikut:
exec.Command("/bin/bash", "-c", "command -v foo")
Ini akan melaksanakan "perintah" terbina dalam cengkerang Bash.
3. Menggunakan Shell Execution:
Jika anda perlu melaksanakan berbilang arahan atau melakukan operasi yang lebih kompleks, anda boleh menggunakan fungsi os/exec.Command untuk melaksanakan skrip shell:
cmd := exec.Command("sh", "my-script.sh") cmd.Run()
Ini akan melaksanakan kandungan my-script.sh dalam shell semasa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Terbina Dalam Linux dari Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!