Dalam Go, melaksanakan perintah luaran dan mengurus input dan outputnya ialah tugas biasa. Walau bagaimanapun, apabila berurusan dengan arahan yang menggesa input pengguna, seperti "log masuk", ia boleh mencabar untuk mengautomasikan input ini secara pengaturcaraan.
Satu pendekatan untuk masalah ini ialah menulis terus ke input standard arahan (stdin ) menggunakan penimbal bait. Mari kita selami penyelesaian yang disediakan:
<code class="go">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</code>
Dalam kod ini, kami mencipta bait. Penampan bernama b dan menggabungkan nama pengguna dan kata laluan dengan baris baharu. Kami kemudiannya menetapkan b kepada medan Stdin arahan log masuk, dengan berkesan menyambungkan penimbal kepada aliran input arahan.
Apabila perintah itu dilaksanakan, ia akan membaca aksara daripada b sehingga ia menemui baris baharu, mentafsir ini sebagai nama pengguna. Ia kemudian akan dibaca sehingga baris baharu seterusnya, menganggap ini sebagai kata laluan. Dengan menulis secara manual kepada penimbal dengan cara ini, kami memintas keperluan untuk interaksi pengguna dan menyediakan input yang diperlukan secara pengaturcaraan.
Ingat, stdin ialah penimbal aksara dan perintah biasanya membaca input sehingga mereka menemui baris baharu. Teknik ini membolehkan anda menimbal dan menyusun input sebelum menyalurkannya kepada arahan luaran, mengautomasikan proses input tanpa memerlukan campur tangan pengguna manual.
Atas ialah kandungan terperinci Cara Mengautomasikan Input Perintah Luaran dalam Go: Panduan untuk Melangkau Interaksi Pengguna untuk Perintah Seperti \'log masuk\'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!