linux – 如何从Scala执行shell builtin

linux – 如何从Scala执行shell builtin,第1张

概述我需要从 Linux中的Scala脚本检查一些系统设置,如ulimit -n.如果我要处理普通命令,我会使用scala.sys.process包,如: import scala.sys.process._println("ls -lha".!!) 不幸的是,这对shell内置函数不起作用.有没有办法从Scala中内置的shell中捕获输出? 更新: 我尝试了几种形式的通常技巧sh -c“ulim 我需要从 Linux中的Scala脚本检查一些系统设置,如ulimit -n.如果我要处理普通命令,我会使用scala.sys.process包,如:
import scala.sys.process._println("ls -lha".!!)

不幸的是,这对shell内置函数不起作用.有没有办法从Scala中内置的shell中捕获输出?

更新:

我尝试了几种形式的通常技巧sh -c“ulimit -n”,没有运气;以下所有命令均失败:

"sh -c 'ulimit -n'".!!"sh -c \"ulimit -n\"".!!"""sh -c "ulimit -n"""".!!"""sh -c "ulimit -n """ + "\"".!!

我在REPL中遇到运行时错误:

-n": 1: Syntax error: Unterminated quoted stringjava.lang.RuntimeException: Nonzero exit value: 2    at scala.sys.package$.error(package.scala:27)    at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.slurp(ProcessBuilderImpl.scala:131)    at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang$bang(ProcessBuilderImpl.scala:101)    at .<init>(<console>:11)    at .<clinit>(<console>)    at .<init>(<console>:11)    at .<clinit>(<console>)    at $print(<console>)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:601)    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)    at scala.tools.nsc.interpreter.IMain$Request$$anonfun.apply(IMain.scala:920)    at scala.tools.nsc.interpreter.line$$anonfun.apply$mcV$sp(line.scala:43)    at scala.tools.nsc.io.package$$anon.run(package.scala:25)    at java.lang.Thread.run(Thread.java:722)
解决方法 将字符串转换为shell命令时,参数由空格分隔.您尝试的约定是shell约定,因此您需要一个shell来开始应用它们.

如果您想要更多地控制每个参数是什么,请使用Seq [String]而不是String,或者使用一个相同的Process工厂.例如:

Seq("sh","-c","ulimit -n").!!
总结

以上是内存溢出为你收集整理的linux – 如何从Scala执行shell builtin全部内容,希望文章能够帮你解决linux – 如何从Scala执行shell builtin所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存