たとえば、Scala プロセス内から Python 対話型インタープリターを呼び出し、ユーザーがサブプロセスと完全に対話できるようにするダミー スクリプト (実際のスクリプトを作成する可能性がある) を作成したいと思います。つまり、子プロセスの stdin/stdout/stderr は、親 (Scala) プロセスの stdin/stdout/stderr に接続する必要があります。私は無駄に次を使用してみました:
#!/usr/bin/env scala -savecompiled
import sys.process._
stringToProcess("python").run(BasicIO.standard(connectInput = true)).exitValue
ただし、サブプロセスを正常に実行しているように見えますが、python
サブプロセスとのやり取りは次のCtrl-C
とおりです。
~$ ./scalashelltest.scala
foo
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
Ctrl-C をすぐに押すと、その出力さえ得られません。
~$ ./scalashelltest.scala
^C~$
なぜこれが起こっているのか、期待どおりに機能させる方法はありますか?