我以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脚本中,您应该使用puts
或print
方法打印一些内容:
puts %x{uname -n}
或:
print %x{uname -n}