Мне нужно запустить команду оболочки из сценария Scala, и я использую для этого следующий фрагмент кода:
import scala.sys.process.{Process, ProcessIO}
val command = "ls /tmp"
val process = Process(command)
val processIO = new ProcessIO(_ => (),
stdout => scala.io.Source.fromInputStream(stdout).getLines.foreach(println),
_ => ())
process.run(processIO)
Код работает нормально. Мне интересно, почему я получаю
java.io.IOException: Cannot run program "cd": error=2, No such file or directory
, как только я меняю команду на cd /tmp && ls
, что эквивалентно IMO ls /tmp
?