Problem: Erstellen Sie ein Bash-Skript aus einem Golang-Programm, das eine Liste von Abhängigkeiten durchläuft und deren überprüft Typen und gibt benutzerdefinierte Befehle basierend auf diesen Typen mithilfe von Switch-Case-Anweisungen aus.
Antwort:
Der folgende aktualisierte Golang-Code erreicht das gewünschte Verhalten:
<code class="go">package main import ( "log" "text/template" "gopkg.in/yaml.v2" "os" ) type File struct { TypeVersion string `yaml:"_type-version"` Dependency []Dependency } type Dependency struct { Name string Type string } func main() { f := File{} err := yaml.Unmarshal([]byte(data), &f) if err != nil { log.Fatalf("error: %v", err) } const t = ` #!/bin/bash {{range .Dependency}} echo "type is {{.Type}}" {{switch .Type}} case "runner1": echo "Submitting api1" case "runner2": echo "Submitting api2" default: echo "Unknown type" {{end}} {{end}} ` tt := template.Must(template.New("").Parse(t)) err = tt.Execute(os.Stdout, f) if err != nil { log.Println("executing template:", err) } }</code>
Erklärung:
Ergebnis:
Das von diesem Code erstellte Beispiel-Bash-Skript ist:
<code class="bash">#!/bin/bash echo "type is runner" Submitting api1 echo "type is runner2" Submitting api2</code>
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie erstelle ich ein benutzerdefiniertes Bash-Skript mithilfe von Go-Vorlagen, Switch-Case-Anweisungen und YAML-Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!