无法从 Scala 脚本停止和 rm docker 容器

Unable to stop and rm docker containers from Scala script

我正在尝试从 ammonite Scala 脚本中执行以下命令:

 Process("docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)")

我总是得到以下输出:

unknown shorthand flag: 'a' in -a
See 'docker stop --help'.

我已经尝试了很多不同的变体,但都没有成功,但是它在控制台上运行良好。如果能提供一些帮助,我们将不胜感激。

如果你将一个字符串传递给 Process 那么 scala 只会将它拆分为空格,它不会足够聪明地解释像 bash 的命令替换 $().

最简单的解决方法是使用 Seq 命令,并将您的内容包装在对 bash:

的调用中
Process(Seq("bash", "-c", "docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)"))