से खोल निर्मित को निष्पादित करने के लिए मुझे लिनक्स में स्कैला स्क्रिप्ट से ulimit -n
जैसी कुछ सिस्टम सेटिंग्स की जांच करने की आवश्यकता है। मैं साधारण आदेशों का सामना करना पड़ा रहा scala.sys.process
पैकेज का उपयोग करना चाहते हैं:स्कैला
import scala.sys.process._
println("ls -lha".!!)
दुर्भाग्य से इस खोल builtins के लिए काम नहीं करता। क्या स्कैला में शैल बिल्टिन से आउटपुट पकड़ने का कोई तरीका है?
अद्यतन:
मैं कोई भाग्य के साथ कई रूपों में सामान्य चाल sh -c "ulimit -n"
की कोशिश की, नीचे दिए गए सभी आदेशों असफल:
"sh -c 'ulimit -n'".!!
"sh -c \"ulimit -n\"".!!
"""sh -c "ulimit -n"""".!!
"""sh -c "ulimit -n """ + "\"".!!
और मैं आरईपीएल में एक रनटाइम त्रुटि हो रही है:
-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 .<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$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)
क्या आपने इसे आरपीएल के बाहर आज़माया था, उदाहरण के लिए, स्कैला स्क्रिप्ट में? –