Switch 및 ForEach가 포함된 Golang 템플릿
동적 명령이 필요한 bash 스크립트를 구성할 때 스위치 및 ForEach와 함께 Golang 템플릿을 활용할 수 있습니다. loops.
종속성 구조
유형 정보가 포함된 종속성 구조를 고려하세요.
type Dependency struct { Name string Type string CWD string Install []Install }
Bash 스크립트 템플릿
다음으로, 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}}
템플릿 실행
템플릿을 사용하여 스크립트를 생성하려면:
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) } }
출력
go run main.go를 실행하면 원하는 bash 스크립트가 생성됩니다.
#!/bin/bash echo "type is runner" echo "cwd is /ui" echo "install api" echo "type is runner2" echo "cwd is /ui2" echo "install api2"
개선 사항
유연성을 높이려면 설치 단계를 별도의 맵에 저장하고 종속성 유형에 따라 보간하는 것을 고려해 보세요. 이를 통해 데이터 소유권이 분리되고 보다 동적인 스크립트 생성이 가능해집니다.
위 내용은 스위치 문과 ForEach 루프가 포함된 동적 bash 스크립트를 생성하는 데 Golang 템플릿을 어떻게 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!