使用%x执行Ruby shell不工作



我以uname -n为例。我尝试了其他shell命令,使用shell命令的完整路径名,并且使用了其他分隔符,例如%x( )%x[ ]

$ uname -n
my-server
$ which env
/usr/bin/env
$ which ruby
/home/ubuntu/.rvm/rubies/ruby-2.2.1/bin/ruby
$ irb
2.2.1 :001 > %x{uname -n}
 => "my-servern" 
2.2.1 :002 > exit
$ cat ET.rb
    #!/usr/bin/env ruby
    %x{uname -n}
$ ruby ET.rb
$ ### !!!?!?!?  I'm expecting "my-server"

在IRB中,它将显示您提供给它的任何Ruby语句的结果。但是如果在Ruby脚本中,您应该使用putsprint方法打印一些内容:

puts %x{uname -n}

或:

print %x{uname -n}

最新更新