是否可以在Scala Ammonite shell中嵌套命令调用?

时间:2016-12-30 02:19:39

标签: scala ammonite

我尝试将典型的UNIX命令jmap -heap $(pgrep java)转换为Ammonite-Shell的命令。

到目前为止我的尝试:%'jmap("-heap", %'pgrep("java"))

我收到错误SyntaxError: found "%'jmap(\"-heap\", %'pg", expected "while" | ...这似乎表明对pgrep的内部调用实际上并未转换为命令调用,只是作为字符串传入。

1 个答案:

答案 0 :(得分:2)

在Ammonite中,单%生成一个子流程并打印出其结果。要访问命令输出,您需要使用%%运算符,它将返回CommandResult个对象。该对象包含out字段,该字段是其输出的流。

你可以这样嵌套:

%jmap("-heap", (%%pgrep("java")).out.lines.take(1))