反引号

一个其它类型的字符串值得特别提及:一个由反引号括起来的字符串——也就是在键盘左上角的向内指向的引号字符 `

Ruby 认为任何由反引号括起来的都是一个可以使用 printputs 方法传递给操作系统执行的命令。到目前为止,你可能已经猜到 Ruby 提供了不仅仅一种方式去实现这些。事实证明,%x/some command/somecommand 具有相同的效果,当然 %x{some command} 也是如此。例如,在 Windows 操作系统上,如下所示的三行代码都是将命令 dir 传递给操作系统执行,显示目录列表:

4backquotes.rb
  1. puts(`dir`)
  2. puts(%x/dir/)
  3. puts(%x{dir})

你也可以在双引号字符串中嵌入命令,如下所示:

  1. print( "Goodbye #{%x{calc}}" )

如果你这么做,要小心的是,命令首先会被执行。你的 Ruby 程序会进行等待,直到开始的进程终止。在这种情况下,计算器将先弹出来。你可以做一些计算,只有当你关闭计算器的时候,字符串 “Goodbye” 才会显示。