Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah templat Golang boleh digunakan untuk menjana skrip bash dinamik dengan penyataan suis dan gelung ForEach?
Templat Golang dengan Suis & ForEach
Apabila membina skrip bash yang memerlukan arahan dinamik, seseorang boleh menggunakan templat Golang bersama-sama dengan suis dan ForEach gelung.
Struktur Kebergantungan
Pertimbangkan struct kebergantungan yang mengandungi maklumat jenis:
type Dependency struct { Name string Type string CWD string Install []Install }
Templat Skrip Bash
Seterusnya, buat templat untuk skrip bash:
#!/bin/bash {{range $d := .Dependency}} echo "type is {{$d.Type}}" echo "cwd is {{$d.CWD}}" {{range $i := $d.Install}} echo "install {{$i.name}}" {{end}} {{end}}
Pelaksanaan Templat
Untuk menjana skrip menggunakan templat:
package main import ( "log" "text/template" "gopkg.in/yaml.v2" "os" ) // ... (rest of the code unchanged) func main() { // ... (rest of the code unchanged) const t = ` #!/bin/bash {{range .Dependency}} echo "type is {{.Type}}" echo "cwd is {{.CWD}}" {{range .Install}} echo "install {{.name}}" {{end}} {{end}} ` tt := template.Must(template.New("").Parse(t)) err = tt.Execute(os.Stdout, f) if err != nil { log.Println("executing template:", err) } }
Output
Menjalankan go run main.go akan menghasilkan skrip bash yang diingini:
#!/bin/bash echo "type is runner" echo "cwd is /ui" echo "install api" echo "type is runner2" echo "cwd is /ui2" echo "install api2"
Peningkatan
Untuk lebih fleksibiliti, pertimbangkan untuk menyimpan langkah pemasangan dalam peta berasingan dan menginterpolasinya berdasarkan jenis pergantungan. Ini memisahkan pemilikan data dan membolehkan penjanaan skrip yang lebih dinamik.
Atas ialah kandungan terperinci Bagaimanakah templat Golang boleh digunakan untuk menjana skrip bash dinamik dengan penyataan suis dan gelung ForEach?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!