Lo script My Ruby esegue un comando shell e analizza l'output da esso. Tuttavia, sembra che il comando venga prima eseguito e l'output salvato in un array. Mi piacerebbe poter accedere alle linee di output in tempo reale così come vengono stampate. Ho giocato con i thread, ma non ho potuto farlo funzionare. Eventuali suggerimenti?Can Ruby può accedere all'output dai comandi della shell così come appare?
12
A
risposta
21
Stai cercando tubi . Ecco un esempio:
# This example runs the netstat command via a pipe
# and processes the data in Ruby as it come back
pipe = IO.popen("netstat 3")
while (line = pipe.gets)
print line
print "and"
end
0
Quando i metodi/funzioni di chiamata di eseguire comandi shell di sistema /, il vostro interprete genera un altro processo per eseguirlo e aspetta che finisca, poi ti dà l'output.
Anche se si utilizzano i thread, l'unica cosa che si otterrebbe non è lasciare che il programma si blocchi mentre il comando è in esecuzione, ma non si otterrà l'output fino al suo completamento.
Penso che tu possa farlo con le pipe, ma non so come.
@Marcel capito.
Problemi correlati
- 1. Sbarazzarsi di newline dai comandi shell in Ruby
- 2. Emulazione arresto forzato dai comandi ADB/shell
- 3. Come combinare i comandi della shell
- 4. Can Node.js può invocare Chrome?
- 5. Jenkins non può accedere alias di shell
- 6. Can Laravel 4 può accedere a un database MySQL?
- 7. Come eseguire i comandi della shell da un'applicazione Mac/MacRuby?
- 8. Python - come eseguire i comandi della shell con pipe?
- 9. Come utilizzare i comandi della shell in Makefile
- 10. Scala - comandi shell con pipe
- 11. Script Comandi shell Karaf?
- 12. Can Byte Buddy può accedere al nome della variabile locale di un metodo?
- 13. Can Pyserial può funzionare con dispositivi nascosti?
- 14. Comandi personalizzati con git-shell
- 15. c makefile con i comandi della shell e le variabili
- 16. Come si può accedere ai portachiavi GNOME da Ruby?
- 17. Come faccio a caricare le variabili d'ambiente per una shell di comandi in uno script Ruby?
- 18. quali sono i comandi integrati della shell in linux?
- 19. Come eseguire comandi sulla shell attraverso pitone
- 20. I comandi della shell sono scritti in quale lingua?
- 21. Esegui automaticamente i comandi all'avvio della shell python
- 22. Can ToArray() può generare un'eccezione?
- 23. Come si riversa l'output della shell in ruby -e?
- 24. Come si usa Ruby per lo scripting della shell?
- 25. Comandi di shell di escape In java?
- 26. Esecuzione comandi shell da Java
- 27. Quando si separa l'ui dai comandi?
- 28. Can Golang può moltiplicare stringhe come Python?
- 29. Come eseguire i comandi della shell in modo sincrono in PHP
- 30. Come vengono implementati i comandi incorporati nella shell?
Ottima risposta, grazie mille! – Ciryon
L'output viene effettivamente memorizzato nel buffer fino al completamento del comando, quindi verrà visualizzato l'output, se non si cura della real-time. – user180574