Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ruby的命令行交互_Ruby - Fatal编程技术网

使用Ruby的命令行交互

使用Ruby的命令行交互,ruby,Ruby,我有一个Rails应用程序,正在尝试通过CLI与Java程序通信 当我使用system运行Java代码时: system "java askQuestion" 它会提示用户输入并等待回答,例如“您的年龄是多少?” 我想从变量中传入一个值,并捕获输出 如何与CLI交互并运行命令 我做了研究,但我什么也找不到,或者我错过了正确的搜索词 解决方案:IO.popen 更新--> 我在这里找到了我想要和分享的东西,可能也会帮助其他人,只是在子shell中执行命令,返回进程启动的结果(true/false

我有一个Rails应用程序,正在尝试通过CLI与Java程序通信

当我使用
system
运行Java代码时:

system "java askQuestion"
它会提示用户输入并等待回答,例如“您的年龄是多少?”

我想从变量中传入一个值,并捕获输出

如何与CLI交互并运行命令

我做了研究,但我什么也找不到,或者我错过了正确的搜索词

解决方案:IO.popen

更新--> 我在这里找到了我想要和分享的东西,可能也会帮助其他人,

只是在子shell中执行命令,返回进程启动的结果(
true
/
false

要捕获输出,请使用

要与shell交互,可以使用,但在您的情况下,我会坚持执行

output = `echo 37 | java askQuestion`
上面将把
echo
(本例中为37)的输出传递给Java进程。Java进程的响应将存储在
output
变量中。

只在子shell中执行命令,返回进程启动的结果(
true
/
false

要捕获输出,请使用

要与shell交互,可以使用,但在您的情况下,我会坚持执行

output = `echo 37 | java askQuestion`

上面将把
echo
(本例中为37)的输出传递给Java进程。Java进程的响应将存储在
output
变量中。

我尝试了这个输出=`Java askQuestion |“37”`但它给出了这个错误“sh:1:'37'未找到”。你到底为什么要尝试将Java的输出管道化到
37
,而不是反过来呢?!我尝试了这个输出=`java askQuestion |“37”`但是它给出了这个错误“sh:1:'37'未找到”。你到底为什么要尝试将java的输出管道化到
37
,而不是反过来呢?!我们需要更多的信息。Java代码在处理之前需要多少输入?你能从标准输入到它吗?它能从文件中读取响应吗?你说你做了研究,但你没有告诉我们你在哪里搜索,为什么那些没有帮助,这对我们没有帮助;告诉我们你在哪里搜索,为什么那些没有用,这样我们就不会重复你的足迹。我强烈建议您阅读“”,包括页面底部的所有链接,因为您的问题过于宽泛且缺乏细节。您是否尝试过在
rails控制台中四处搜索
?听起来像你所描述的。(顺便说一句,当你对一门语言如此陌生,甚至不知道要搜索的术语时,这真的很难。很容易忘记:))谢谢,我会检查“如何提问”。我使用“IO.popen”实现了我想要做的事情。我在帖子中添加了解决方案。我们需要更多信息。Java代码在处理之前需要多少输入?你能从标准输入到它吗?它能从文件中读取响应吗?你说你做了研究,但你没有告诉我们你在哪里搜索,为什么那些没有帮助,这对我们没有帮助;告诉我们你在哪里搜索,为什么那些没有用,这样我们就不会重复你的足迹。我强烈建议您阅读“”,包括页面底部的所有链接,因为您的问题过于宽泛且缺乏细节。您是否尝试过在
rails控制台中四处搜索
?听起来像你所描述的。(顺便说一句,当你对一门语言如此陌生,甚至不知道要搜索的术语时,这真的很难。很容易忘记:))谢谢,我会检查“如何提问”。我使用“IO.popen”实现了我想要做的事情。我在帖子中添加了解决方案。