Wie einfach ist es, Ergebnisse von Systembefehlen in Ruby zu verbergen? Zum Beispiel laufen einige meiner Skriptsversteckt Systembefehl Ergebnisse in Ruby
system "curl ..."
und ich würde nicht gerne die Ergebnisse des Downloads sehen.
Danke!
Wie einfach ist es, Ergebnisse von Systembefehlen in Ruby zu verbergen? Zum Beispiel laufen einige meiner Skriptsversteckt Systembefehl Ergebnisse in Ruby
system "curl ..."
und ich würde nicht gerne die Ergebnisse des Downloads sehen.
Danke!
können Sie verwenden, um die anspruchsvolleren popen3 Kontrolle über STDIN, STDOUT und STDERR getrennt zu haben, wenn man so will:
Open3.popen3("curl...") do |stdin, stdout, stderr, thread|
# ...
end
Wenn Sie bestimmte Ströme zum Schweigen zu bringen wollen, um sie zu ignorieren, oder wenn es wichtig ist, die Umleitung oder interpretieren Sie diese Ausgabe, Sie haben immer noch verfügbar.
Möglicherweise müssen Sie "open3 'anfordern". Verwenden Sie "myvarname = stdin.read", wenn Sie die Ausgabe verarbeiten möchten. – DanielaWaranie
Um erweiterte Ausgaben wie stdin, stderr usw. zu verwenden, ist es in Ordnung, aber nur um die Ausgabe der Konsole zu erhalten, ist es eine Abhängigkeit, die z. '% x {bash-Befehl arg1 arg2}' – siegy22
@RaVeN Ein Vorteil von 'popen3' oder' system' ist, dass Sie Argumente richtig austeilen können: 'system (" example "," --file ", user_supplied_filename)' ist sicher von Shell-Injektion. 'system (" Beispiel --file # {user_supplied_filename} ")' ist ** extrem gefährlich ** und sollte nicht gemacht werden. – tadman
Die einfachste ist stdout zu umleiten :)
system "curl ... 1>/dev/null"
# same as
`curl ... 1>/dev/null`
Easiest auf andere Weise als popen:
Use% x statt System. Es wird automatisch Rohr
rval = %x{curl ...} #rval will contain the output instead of function return value
manuell Rohr/dev/null. Arbeiten in UNIX wie System Windows nicht
system "curl ... > /dev/null"
Beachten Sie, dass bereits curl einen '--silent' Modus hat Sie verwenden können. – Phrogz
Genau das habe ich gebraucht. Vielen Dank! – dejay
mögliches Duplikat von [Unterdrücken der Ausgabe eines Befehls, der mit der Methode 'system' ausgeführt wird, während es in einem Ruby-Skript ausgeführt wird] (http://stackoverflow.com/questions/1960838/suppressing-the-output-of-a-command- run-using-system-method-while-running-it-i) –