2015-10-12 208 views
1

终端命令:为什么这些代码行不返回任何结果?

ping -c 1 google.com | grep "time=" | sed -E "s/(.*)time=([.0-9]+) ms/\2/" 

返回只是一个数字表示平的时间与Google.com,无杂统计信息。但是,如果我尝试在Ruby脚本中提取该输出:

detection_medium = `ping -c 1 google.com | grep "time=" | sed -E "s/(.*)time=([.0-9]+) ms/\2/"` 
puts detection_medium 

不返回任何输出。这种语法适用于大多数其他命令,而且我为什么现在不工作而感到困惑。

  • 为什么上面的代码不会返回命令的输出?
  • 我应该如何修改它以确保它返回ping?

回答

4

您需要将\ 2转义为\\ 2。另外,您可能需要在生成的字符串上运行.chomp()。

相关问题