Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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:如何在执行期间将arg传递给系统命令_Ruby_Unix_System_Freebsd - Fatal编程技术网

Ruby:如何在执行期间将arg传递给系统命令

Ruby:如何在执行期间将arg传递给系统命令,ruby,unix,system,freebsd,Ruby,Unix,System,Freebsd,你好! 我认为这是一个非常简单的问题,但我不知道如何处理它。所以我向你寻求建议或指导。 我对unix命令进行system调用,在执行过程中,它要求我输入一个字符串描述。我该怎么做? 谢谢大家! 看来我的问题解决了一半。为了明确起见,有谁能告诉我为什么会出现这种代码: #/usr/local/bin/ruby19 #Process.daemon(true) exec "/bin/cp src dst" 工作正常,但是如果从进程中删除#。守护进程(true)时,它什么也不做 您可以使用IO.

你好! 我认为这是一个非常简单的问题,但我不知道如何处理它。所以我向你寻求建议或指导。 我对unix命令进行
system
调用,在执行过程中,它要求我输入一个字符串描述。我该怎么做? 谢谢大家!

看来我的问题解决了一半。为了明确起见,有谁能告诉我为什么会出现这种代码:

#/usr/local/bin/ruby19 
#Process.daemon(true) 
exec "/bin/cp src dst" 

工作正常,但是如果从
进程中删除
#
。守护进程(true)
时,它什么也不做

您可以使用
IO.pipe
spawn
(在Ruby 1.9.3中)创建一个到另一个进程的管道,以便写入它。比如说,

r, w = IO.pipe
spawn("cat", :in => r)
r.close

# the write to the pipe, which `cat` will read from
w.write("hello\n")

您需要使用类似Open3.popen3的东西才能读取进程输出并写入进程。看起来正是我需要的。但是如果我让我的脚本作为守护进程运行,结果是错误的。是不是因为脚本变成了另一个线程并有另一个pid?我以前没有和流程打过交道。需要更深入。