使用通配符运行多个shell命令
在Scala(或Java)中有没有一种简单的方法可以完成以下操作。我想从Scala进程运行命令行命令,例如:使用通配符运行多个shell命令,shell,scala,Shell,Scala,在Scala(或Java)中有没有一种简单的方法可以完成以下操作。我想从Scala进程运行命令行命令,例如: cd test && javac *.java 作为动态生成的shell脚本。javac*.java应该 发生在目录test中。通常的简单 import scala.sys.process._ ... "cd test && javac *.java".! 或 不要工作,因为Scala误解了&&和通配符*。我没有 我不知道为什么 对于所需内容,
cd test && javac *.java
作为动态生成的shell脚本。javac*.java
应该
发生在目录test
中。通常的简单
import scala.sys.process._
...
"cd test && javac *.java".!
或
不要工作,因为Scala误解了&&
和通配符*
。我没有
我不知道为什么 对于所需内容,应将字符串作为命令行参数输入到
bash
。(也就是说,Process(Seq(“bash”)、“-c”、“cd-test&&javac*.java”)。!
)原因是没有虚拟shell,您在其中输入的命令将改变状态,如cd
。您必须显式地创建一个
过程
工具将允许您将调用链接在一起,但调用的副作用最好反映在文件系统或类似系统中,而不是在shell环境中。介绍性文本末尾的ProcessBuilder
scaladoc。这应该可以正常工作
import scala.sys.process._
"cd test".#&&("javac *.java").!
相当于
"cd test" #&& "javac *.java" !
谢谢,这很有道理。与此同时,我发现了相关的问题,这些问题也提出了类似的观点。我认为Scala文档在这方面可能会更好。
"cd test" #&& "javac *.java" !