2017-01-23 7 views
-1

In der Vagrant-Datei wird ein Aufruf an das Bash-Skript gemacht. Nun möchte ich die Argumente der Bash-Skript übergeben, die von einer YAML-Datei tatsächlich gelesen werden folgende ist das Snippetwie die Argumente an das Bash-Skript übergeben werden, das in einer Vagrant-Datei aufgerufen wird?

yaml_hash = YAML.load_file('config.yml') 
    p yaml_hash['servers'] 
    yaml_hash['servers'].each do |letter, hash| 
    p letter 
    p hash['ip'] 
    p hash['pass'] 
    controller.vm.provision :shell, keep_color: true, path: '/controller.sh', :args => [p hash['ip'], p hash['pass']] 
    end 

Aber das obige Stück ist „Syntaxfehler, unerwartete‚]‘, erwartet keyword_end“ ich bin nicht bekommen, was falsch läuft Ich habe versucht, indem ich die Anführungszeichen um das Argument herum gegeben habe, aber nutzlos. Bitte schlagen Sie vor, wie Sie die Argumente an die Bash-Datei übergeben.

Antwort

1

Die Methode p gibt ihr Argument an die Ausgabe aus. Sie müssen die Werte nicht drucken, sondern sie als Argumente an das Skript übergeben. Entfernen Sie aus der Liste der Argumente:

controller.vm.provision :shell, keep_color: true, path: '/controller.sh', 
    :args => [hash['ip'], hash['pass']] 
Verwandte Themen