是否可以在 Scala Ammonite shell 中嵌套命令调用?
Is it possible to nest command calls in the Scala Ammonite shell?
我正在尝试将典型的 UNIX 命令 jmap -heap $(pgrep java)
转换为 Ammonite-Shell 的命令。
我目前的尝试:%'jmap("-heap", %'pgrep("java"))
。
我收到错误 SyntaxError: found "%'jmap(\"-heap\", %'pg", expected "while" |
... 这似乎表明对 pgrep
的内部调用实际上并未转换为命令调用,只是作为字符串传入。
在 Ammonite 中,单个 %
产生一个子进程并打印出它的结果。为了访问命令输出,您需要使用 %%
运算符,这将 return CommandResult
对象。该对象包含 out
字段,该字段是其输出流。
你可以这样嵌套:
%jmap("-heap", (%%pgrep("java")).out.lines.take(1))
我正在尝试将典型的 UNIX 命令 jmap -heap $(pgrep java)
转换为 Ammonite-Shell 的命令。
我目前的尝试:%'jmap("-heap", %'pgrep("java"))
。
我收到错误 SyntaxError: found "%'jmap(\"-heap\", %'pg", expected "while" |
... 这似乎表明对 pgrep
的内部调用实际上并未转换为命令调用,只是作为字符串传入。
在 Ammonite 中,单个 %
产生一个子进程并打印出它的结果。为了访问命令输出,您需要使用 %%
运算符,这将 return CommandResult
对象。该对象包含 out
字段,该字段是其输出流。
你可以这样嵌套:
%jmap("-heap", (%%pgrep("java")).out.lines.take(1))