Como Scala tiene tantas cosas interesantes, pensé que podría tener algo que facilite la captura de la salida de un proceso. Conozco la forma de hacerlo de Java, pero pensé en preguntar por otro camino.¿Hay alguna clase incorporada de Scala para capturar la salida de un proceso externo?
Respuesta
scala> scala.tools.nsc.io.Process("ls -1 /tmp | wc").stdout foreach println
41 63 770
O hay un comando repl:
scala> :sh cat /etc/passwd | wc
stdout: List[String] = List( 65 185 3667)
de enviar ningún código IO con 2,8 iba a requerir la superación de parada más energía que la que puedo vencer, por lo que poner todo en el compilador. Un montón de cosas razonablemente útiles en scala.tools.nsc.io.
No es del todo correcto decir que Java hace esto, debido a la diferencia de proceso/gestión de flujo en diferentes sistemas operativos, gran parte de esta funcionalidad se transmite al código nativo.
Una pregunta más interesante sería entonces preguntar si Scala tiene ninguna manera de trabajar más "idiomático" con los lectores y escritores (o canales si está envolviendo sus arroyos con funcionalidad NIO)
Y la respuesta?
Por el momento hay trabajos en curso en una biblioteca scala IO que se basarán en 2.8, esto casi seguramente incluirá una mejor manera de trabajar con transmisiones y canales, pero aún no está disponible.
También puede encontrar actores para ser una mejor manera de manejar la práctica común de utilizar un hilo para la entrada y un hilo para la salida cuando se trata de un proceso exec() 'd.
A partir de Scala 2.9, que puede hacer:
import scala.sys.process.Process
println(Process("uname -a").!!.contains("x86_64"))
- 1. ¿Alguna solución posible para capturar la entrada/salida del proceso?
- 2. Captura de salida de proceso externo
- 3. ¿Cómo puedo capturar la salida stdout de un proceso hijo?
- 4. En Scala, ¿hay alguna manera de acceder a un símbolo (variable) definido en un ámbito externo?
- 5. ¿Hay alguna forma incorporada para obtener la longitud de un iterable en python?
- 6. ¿Hay alguna manera de capturar la salida de NSLog en un iPhone cuando no está conectado a un depurador?
- 7. ¿Puedes comenzar un proceso externo con Silverlight?
- 8. Cómo capturar la salida de printf?
- 9. ¿Hay alguna forma de capturar imágenes desde la cámara web?
- 10. Capturar salida del proceso mediante el evento OutputDataReceived
- 11. ¿Hay algo como la función de "tal vez" de Haskell incorporada en Scala?
- 12. Jinja - ¿Hay alguna variable incorporada para obtener el nombre de la página HTML actual?
- 13. Cómo capturar la salida de consola de un servicio C#?
- 14. pitón: ejecutar un proceso con tiempo de espera y la salida estándar de captura, stderr y estado de salida
- 15. Scala - obteniendo una devolución de llamada cuando sale un proceso externo
- 16. ¿Hay alguna forma de personalizar la salida de git blame?
- 17. Capturar salida FFMPEG
- 18. ¿Hay alguna forma de bloquear un proceso en una CPU?
- 19. ¿Hay alguna función PHP nativa que arroje una Excepción incorporada?
- 20. Recopilación de la salida de un comando externo usando OCaml
- 21. ¿Hay alguna manera de borrar la salida NSLog?
- 22. ¿Cómo ejecutar un comando externo y capturar su salida en perl6?
- 23. En C#, ¿hay alguna excepción incorporada que no deba usar?
- 24. ¿Hay alguna forma de utilizar pythonappend con la nueva función incorporada de SWIG?
- 25. Capturar la salida EXE en PowerShell
- 26. en express.js, ¿hay alguna manera de capturar la solicitud para json y html en una función?
- 27. ¿Hay alguna manera en Python para devolver un valor a través de un parámetro de salida?
- 28. ¿Cómo capturar la salida desde un comando remoto en Capistrano?
- 29. Capturar evento de salida de aplicación - WinForms
- 30. En Scala, ¿hay alguna manera fácil de convertir una clase de caso en una tupla?