Bagaimana untuk Menyediakan Berbilang Medan Input Secara Pengaturcaraan kepada Perintah Luaran dalam Go?

Susan Sarandon
Lepaskan: 2024-10-28 13:43:02
asal
579 orang telah melayarinya

How to Programmatically Provide Multiple Input Fields to an External Command in Go?

Menulis kepada STDIN Perintah Luaran dalam Go

Dalam Go, apabila melaksanakan arahan luaran, selalunya perlu memberikan input melalui STDIN. Artikel ini meneroka teknik untuk menulis input kepada STDIN apabila berurusan dengan arahan yang memerlukan berbilang medan input.

Mari kita pertimbangkan perintah yang menggesa nama pengguna dan kata laluan secara berurutan, seperti arahan "log masuk". Untuk menyediakan input ini secara pengaturcaraan, kita perlu menulis kepada STDIN arahan.

Pendekatan awal adalah untuk mengendalikan medan input secara manual seperti yang dilihat dalam kod berikut:

<code class="go">login := exec.Command(cmd, "login")

login.Stdout = os.Stdout
login.Stdin = os.Stdin
login.Stderr = os.Stderr

err := login.Run()
if err != nil {
    fmt.Fprintln(os.Stderr, err)
}</code>
Salin selepas log masuk

Walau bagaimanapun , kaedah ini tidak membenarkan input program. Penyelesaiannya terletak pada penggunaan bytes.Buffer untuk memasang input. Berikut ialah kod yang dipertingkatkan:

<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>
Salin selepas log masuk

Bait.Penimbal bertindak sebagai penimbal aksara. Dengan menulis nama pengguna dan kata laluan yang dipisahkan oleh aksara baris baharu, kami pada asasnya membina urutan input yang akan dibaca oleh arahan luaran secara bergilir-gilir. Medan Stdin arahan diberikan penimbal, memastikan bahawa input dimasukkan ke dalam proses arahan.

Pendekatan ini membolehkan input automatik kepada arahan luaran dengan berbilang medan input, memudahkan interaksi antara Go dan arahan lain- alatan garisan.

Atas ialah kandungan terperinci Bagaimana untuk Menyediakan Berbilang Medan Input Secara Pengaturcaraan kepada Perintah Luaran dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!