Scalaコードから外部バイナリを実行し、その出力を取得する必要があります。これを行う標準的な方法は、scala.sys.processを使用しているようです。次のコードは、主に動作します:余分な改行があるようScalaのsys.processを使用してシェルを外すときに余分な末尾の改行を避ける方法
import scala.sys.process._
val command = Seq("python3", "-c", "print('foo', end='')")
val result = command.!!
しかし、それはそうです:
print(result.length) // prints 4 instead of 3
print(result) // prints an extra newline at the end
私はちょうど最後の文字を削除するには、結果の文字列を変更することができますが、それがあること奇妙なようですsys.processは末尾の改行を出力に追加するので、私がやっていることや設定可能なバグかもしれないと思った。
末尾の改行はそこにあるはずですか?
出力文字列を操作せずに削除する方法はありますか?
は、私は本当のバイナリが出力任意の潜在終わりに空白を含む文字列、および私が望むことができますので、 '.trim'をやって避けたい:あなたのシェルがサポートしていればそうでない場合、あなたは、これを行うことができますそれが出力するものを正確に保存する。 –