Wenn ich diese einfache Ruby-Skript auszuführen:Locken-Befehl wird statt gespeichert in Ruby gedruckt
a = `curl localhost`
puts "Result is: #{a}"
=> % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
=> 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to localhost port 80: Connection refused
=> Result is:
Sehen Sie, dass das Ergebnis gedruckt wird, wenn der Befehl ausgeführt wird, und die Variable ist leer. Aber wenn ich anderen Befehl im gleichen Format laufen funktioniert es, wie ich erwarte:
a = `ls`
puts "Result is: #{a}"
=> Result is: test.rb
Wie kann ich die Ergebnisse des ersten curl Befehls in eine Variable speichern?
Vielen Dank für die Erklärung. Basierend auf den von Ihnen bereitgestellten Informationen habe ich 'a =' curl localhost 2> & 1 '' 'getestet, was so funktioniert, wie ich es erwartet habe, ohne dass ich aus einer Datei lesen muss. Können Sie das zu Ihrer Antwort hinzufügen, damit ich es akzeptieren kann? – Scotty
Aktualisiert, ich wusste es nicht, jetzt mache ich, danke dafür. –
'curl -s localhost' wird die Fortschrittsanzeigen stummschalten und Ihnen nur den Antworttext im stdout geben. Keine Notwendigkeit für Umleitungen Shenanigans. Außerdem "require" open-uri '; a = offen ('http: // localhost') {| f | f.read} 'ist ein reines Ruby-Äquivalent. – Amadan