linux 退出 scala命令,linux – 如何从Scala执行shell builtin

我需要从

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 string

java.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 .(:11)

at .()

at .(:11)

at .()

at $print()

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$14.apply(IMain.scala:920)

at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)

at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)

at java.lang.Thread.run(Thread.java:722)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值