Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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,我正在用ruby试试这个。 我有一个shell脚本,我可以向它传递一个命令,在设置了一些初始环境变量之后,shell将执行该命令。所以在ruby代码中,我正在这样做 # ruby code my_results = `some_script -allow username -cmd "perform_action"` 问题是,由于脚本“some_script”在自己的环境中运行“perform_action”,所以在输出变量“my_results”时,我看不到结果。因此,在脚本处理命令“per

我正在用ruby试试这个。 我有一个shell脚本,我可以向它传递一个命令,在设置了一些初始环境变量之后,shell将执行该命令。所以在ruby代码中,我正在这样做

# ruby code
my_results = `some_script -allow username -cmd "perform_action"`
问题是,由于脚本“some_script”在自己的环境中运行“perform_action”,所以在输出变量“my_results”时,我看不到结果。因此,在脚本处理命令“perform\u action”之前,“my\u results”的ruby puts只会给我一些初始注释

有什么线索可以让我把perform_动作的输出转化为“my_results”吗


谢谢。

反勾号只会捕获stdout。如果您正在重定向stdout或写入任何其他句柄(如stderr),它将不会显示在其输出中;否则,它就应该这样做。是否进入标准输出并不取决于环境,只取决于重定向或直接写入不同的句柄

尝试查看脚本是否从shell打印到标准输出:

$ some_script -allow username -cmd "perform_action" > just_stdout.log
$ cat just_stdout.log
无论如何,这不是一个Ruby问题。(如果我理解正确,至少不是这样。)任何语言都会得到相同的答案。

'因为脚本“some_script”在自己的环境中运行“perform_action”,所以当我输出变量“my_results”时,我看不到结果'如果您的意思是
某些脚本
实际上没有打印
执行操作
的结果,那么您对此无能为力。如果你是说别的,嗯?