मैं टर्मिनल में इस आदेश को क्रियान्वित कर रहा हूँ और यह ठीक काम करता है:

curl -d "sentence=Jack sold the car to Jenny" austen.cs.illinois.edu:8082/parse

दूसरी ओर निष्पादित चीजें स्कैला में काम नहीं कर रही प्रतीत होती हैं:

import sys.process._
val output = s"""curl -d \"sentence=Jack sold the car to Jenny\" austen.cs.illinois.edu:8082/parse""".!!
println(output.split("\t"))

जो आउटपुट करता है:

[error]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
[error]                                  Dload  Upload   Total   Spent    Left  Speed
[error] 
[error]   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: sold
[error] curl: (6) Could not resolve host: the
[error] 
[error]   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: car
[error] curl: (6) Could not resolve host: to
[error] curl: (6) Could not resolve host: Jenny"
[error] 
[error] 100    37  100    23  100    14    153     93 --:--:-- --:--:-- --:--:--   153

विचार मुझे यहां अलग-अलग व्यवहार क्यों दिखाई दे रहे हैं?

1
Daniel 31 जुलाई 2017, 22:09

1 उत्तर

सबसे बढ़िया उत्तर

scala.sys.process, एक स्ट्रिंग का निष्पादन मानता है कि तर्क रिक्त स्थान से अलग होते हैं, और एम्बेडेड रिक्त स्थान से बचने का कोई तरीका नहीं है।

क्या चलाएं और कैसे करें

...

स्पष्ट रूप से, प्रत्येक प्रक्रिया या तो स्ट्रिंग से बनाई जाती है, रिक्त स्थान से अलग तर्कों के साथ - रिक्त स्थान से बचना संभव नहीं है - या scala.Collection.Seq से बाहर, जहां पहला तत्व कमांड नाम का प्रतिनिधित्व करता है, और शेष तत्व इसके तर्क हैं। इस बाद के मामले में, तर्कों में रिक्त स्थान हो सकते हैं।

आपके curl अनुरोध बॉडी तर्क में एम्बेडेड रिक्त स्थान हैं, इसलिए यह माना जा रहा है कि वे एकाधिक स्थान-सीमांकित तर्क हैं। चूंकि कोई बच निकलना संभव नहीं है, इसलिए आपको इसे Seq के रूप में निष्पादित करना होगा, प्रत्येक तत्व स्पष्ट रूप से निर्दिष्ट करता है कि एक नया तर्क कहां है और जहां एम्बेडेड रिक्त स्थान के साथ एक तर्क है।

val output = Seq("curl", "-d", "sentence=Jack sold the car to Jenny", "austen.cs.illinois.edu:8082/parse").!!
7
Community 20 जून 2020, 12:12