Apabila melaksanakan arahan luaran yang memerlukan input pengguna, ia boleh menjadi mencabar untuk mengautomasikan proses ini dengan berkesan. Pertimbangkan senario berikut di mana perintah luaran menunggu input untuk nama pengguna dan kata laluan.
Inti isu ini terletak pada menyediakan input kepada berbilang medan dalam stdin arahan. Satu pendekatan ialah menggunakan penimbal bait:
login := exec.Command(cmd, "login") var b bytes.Buffer b.Write([]byte(username + "\n" + pwd + "\n")) login.Stdout = os.Stdout login.Stdin = &b login.Stderr = os.Stderr
Di sini, penimbal bait b dicipta dan diisi dengan nilai input mentah untuk nama pengguna dan kata laluan, dipisahkan oleh aksara baris baharu. Medan Stdin arahan log masuk kemudiannya dipautkan kepada penimbal. Ini memastikan arahan luaran membaca input daripada penimbal pra-diisi semasa pelaksanaan.
Penimbal input boleh mengendalikan berbilang baris dengan menyimpan data secara berurutan. Apabila arahan membaca input, ia melelar melalui aksara penimbal mengikut aksara, menganggap aksara baris baharu sebagai pemisah medan. Ini membenarkan kemasukan automatik berbilang input ke dalam stdin arahan.
Dengan menggunakan penimbal bait dan menetapkannya sebagai Stdin untuk arahan luaran, anda boleh memasukkan berbilang nilai dengan cekap daripada dalam program anda, menghapuskan keperluan untuk input manual atau pengendalian kompleks aliran input. Kaedah ini menyediakan cara yang mudah untuk mengautomasikan input bagi arahan luaran, memudahkan pangkalan kod anda dan memperbaik aliran program.
Atas ialah kandungan terperinci Bagaimana untuk Mengautomasikan Input Pengguna untuk Perintah Luaran dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!