我正在尝试编写一个程序,使用Scala运行Linux命令。
我写了一段代码来运行md5sum
命令的功能。
代码片段
object Test extends App {
import sys.process._
case class md5sum_builder private(i: Seq[String]) {
println(i)
protected def this() = this(Seq(""))
def optionCheck() = new md5sum_builder(i :+ "-c")
def files(file: String) = new md5sum_builder(i :+ file)
def hashFile(hashfile: String) = new md5sum_builder(i :+ hashfile)
def assignment(operator: String) = new md5sum_builder(i :+ operator)
def build() = println(("md5sum" + i.mkString(" ")).!!)
}
object md5sum_builder {
def apply() = new md5sum_builder
}
md5sum_builder().files("text.txt").files("text1.txt").assignment(">").hashFile("hashes.md5").build()
}
当我尝试运行命令md5sumtext.txttext1.txt
Error: md5sum: stat '>': No such file or directory
我不知道为什么。有办法让它工作吗?
您的界面似乎没有经过深思熟虑。请注意,file()
、hashFile()
和赋值()
都做同样的事情。所以有人可以来做这样的事情...
md5sum_builder().assignment("text0.txt")
.hashFile("text1.txt")
.files(">") // <--shell redirection won't work
.assignment("hashes.md5")
.build()
...并获得与您发布的示例相同的(非功能性)结果。
这里有一个修正,修正了这一点,并允许重定向输出。
case class md5sum_builder private(i :Seq[String], outfile :String = "/dev/null") {
protected def this() = this(Seq.empty[String])
def optionCheck(file :String) = this.copy(i = i ++ Seq("-c", file))
def file(file: String) = this.copy(i = i :+ file)
def hashFile(file: String) = this.copy(outfile = file)
def build() = println(("md5sum" +: i).#|(Seq("tee", outfile)).!!)
}
现在,这些方法几乎可以以任何顺序进行,并且仍然可以得到预期的结果。
md5sum_builder().file("text0.txt")
.hashFile("hashes.md5")
.file("text1.txt")
.build()
问题内容: 我正在使用Ubuntu 14.04。我有以下代码: 但我不断收到以下错误: python程序和图像都在同一位置。可能是什么问题? 问题答案: 您需要安装:
问题内容: 我想在我的一个golang控制器中指定一个html模板。我的目录结构是这样的 我想为请求/ new加载first.html。我已经将NewHandler用于url / new,并且当/ new请求到达并且在controller.go中时,NewHandler函数正在执行。这是我的代码 但是我遇到一个错误 请帮助我删除此错误。提前致谢 问题答案: 我已经通过提供html的绝对路径解决了这
问题内容: 我正在尝试使用C扩展文件构建共享库,但首先我必须使用以下命令生成输出文件: 执行命令后,我得到以下错误消息: :致命错误:Python.h:没有此类文件或目录编译终止。 实际上我已经尝试了所有建议的解决方案,但是问题仍然存在…我也没有问题。我设法在我的机器上找到该文件……以前有人遇到过同样的问题吗?? 问题答案: 看来你尚未正确安装python dev的标头文件和静态库。使用软件包管理
我在流管道中进行一些文件处理,想测试一些错误条件。我想到的第一件事是打开不存在的文件。我发现我无法处理这种情况。它看起来像节点。fs不会发出“错误”事件。有人知道怎么处理这个案子吗?我读到fs也有同样的情况。取消链接。 如果文件存在,则输出: 如果文件不存在: 类似问题:这里 人们会问:是否有可能在流之前发出错误事件。on('错误',…)是否生效? 谢谢
为了解决需要对GitHub示例中的代码进行哪些特定的更改? 对的请求的控制台输出将触发上面的express.js方法,反复导致错误: 新的指定express.js是: 除了之外,GitHub示例应用程序中的所有其他内容都与您在GitHub上看到的内容相同,它只包含支持和中更改的依赖项,如上图所示。