关于ruby调用外部程序

关于ruby调用外部程序

原来一直使用systemu(“command”)来调用linux下的外部程序,比如nmap,没有问题
最近希望调用python写的一个项目,依旧使用
systemu(“python filepath”),但是发现没有任何输出,即使是类似systemu(“python -V”)这样php?name=%B2%E2%CA%D4" onclick="tagshow(event)" class="t_tag">测试版本的简单命令都执行不了,所以感觉上可能不同于一般的控制台程序

查了一下资料,好像还可以用popen来调用外部程序,但没有试通

请问有没有人遇到与我相同的问题,可以给出您验证通过的一段代码即可,谢谢
今天发现,并不是命令没有执行,而是我没有正确输出错误信息
问题好像出在外部程序的调用路径上,比如
调用python /pathname/fiename时,由于该文件内部含有相对路径,所以不正正确执行
现在还不知道该如何在运行时改变所处路径,好像
systemu(“cd pathname”)不行(自己想当然的)

希望大家提提意见,多谢
问题已经解决了,确实是路径问题
.获取当前工作路径
x = Dir.getwd
print_status( x )

切换路径至path
Dir.chdir("path")
总结一下ruby对shell命令的调用方式
a.systemu
a,stdout,stderr = systemu("python file")
print_status( stdout )

b.popen
handle = IO.popen("python file","r+")
#handle.puts "-version"
handle.close_write
while line = handle.gets
  print_status( line )
end

c.` `
x = `python file`
print_status( x )

d.%x{ } =========未考证
x = %x{python file}
print_status( x )

e.system
system("python filef")
该命令的输出是true和false,表示命令的执行情况
希望对大家有所帮助