1

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

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

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

4

1 回答 1

2

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

你可以这样嵌套它:

%jmap("-heap", (%%pgrep("java")).out.lines.take(1))
于 2016-12-30T08:49:23.953 回答