J'ai une boucle où j'exécute une série de commandes sur une machine distante:Ruby, Comment puis-je accéder à des variables locales en dehors du do - boucle d'extrémité
ssh.exec('cd /vmfs/volumes/4c6d95d2-b1923d5d-4dd7-f4ce46baaadc/ghettoVCB; ./ghettoVCB.sh -f vms_to_backup -d dryrun') do|ch, stream, data|
if #{stream} =~ /vmupgrade/
puts value_hosts + " is " + data
puts #{stream}
puts data
end
end
je veux accéder # {flux} et les données en dehors de la boucle do-end
J'apprécierais toute aide. Merci,
Salut Jörg,
Je mis en œuvre vos suggestions, mais maintenant je reçois l'erreur:
WrapperghettoVCB.rb:49: odd number list for Hash
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '}'
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '='
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '='
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:76: syntax error, unexpected kELSE, expecting kEND
WrapperghettoVCB.rb:80: syntax error, unexpected '}', expecting kEND
Désolé, c'est la nouvelle syntaxe littérale Ruby 1.9 'Hash' pour' Hash'es avec les clés 'Symbol'. Il suffit de remplacer tous les 'foo: bar' avec': foo => bar'. I.e .: 'communicateur = {: ch => ch,: flux => flux,: données => données}'. –