我尝试将典型的UNIX命令jmap -heap $(pgrep java)
转换为Ammonite-Shell的命令。
到目前为止我的尝试:%'jmap("-heap", %'pgrep("java"))
。
我收到错误SyntaxError: found "%'jmap(\"-heap\", %'pg", expected "while" |
...这似乎表明对pgrep
的内部调用实际上并未转换为命令调用,只是作为字符串传入。
答案 0 :(得分:2)
在Ammonite中,单%
生成一个子流程并打印出其结果。要访问命令输出,您需要使用%%
运算符,它将返回CommandResult
个对象。该对象包含out
字段,该字段是其输出的流。
你可以这样嵌套:
%jmap("-heap", (%%pgrep("java")).out.lines.take(1))