Melalui Pembolehubah Persekitaran kepada exec.Command
Apabila mencipta skrip pembalut untuk alat baris arahan menggunakan exec.Command, anda mungkin menghadapi situasi di mana anda perlu lulus pembolehubah persekitaran sebagai sebahagian daripada pelaksanaan arahan. Dalam konteks ini, anda sedang bekerja dengan ansible-playbook dan memerlukan penggunaan parameter MY_VAR.
Fungsi exec.Command menerima tatasusunan rentetan sebagai parameter pertamanya, di mana elemen pertama mewakili perintah untuk laksanakan. Untuk melepasi pembolehubah persekitaran, kami boleh mengubah suai kepingan pembolehubah persekitaran dalam struct Cmd.
Dalam kes anda, anda menghadapi masalah dengan mengatasi semua pembolehubah persekitaran apabila menggunakan medan Env bagi struct Cmd. Untuk menangani perkara ini, anda boleh menambahkan pembolehubah persekitaran yang dikehendaki pada senarai os.Environ() sedia ada:
cmd := exec.Command("ansible-playbook", args...) cmd.Env = os.Environ() cmd.Env = append(cmd.Env, "MY_VAR=some_value")
Pendekatan ini akan mengekalkan pembolehubah persekitaran sedia ada sambil menetapkan pembolehubah persekitaran MY_VAR khusus kepada nilai yang anda inginkan. Dengan menggabungkan fungsi os.Environ() asli dengan keupayaan untuk menambahkan pembolehubah persekitaran tambahan, anda boleh menghantar pembolehubah persekitaran dengan berkesan kepada pelaksanaan perintah anda menggunakan exec.Command.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Pembolehubah Persekitaran kepada `exec.Command` dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!