Ruby在前台执行shell命令

时间:2014-05-04 13:21:09

标签: ruby linux shell ssh

我不是问如何在后台使用ruby运行shell命令,而是如何让ruby程序停止并启动终端命令。

背景:我制作的代码只搜索所有可能的Raspberry PI计算机,这些计算机通过以太网电缆连接到我的主计算机(直接,互联网共享)。代码在这里:

#!/usr/bin/env ruby

my_ip_cf = `ifconfig eth0`
my_ip_re = /inet addr:([\.\d]*).*/
my_ip = my_ip_cf.match(my_ip_re)[1]

ip_list = eval("`nmap -sP "+my_ip+"/24`")
ip_list_re = /Nmap scan report for ([\.\d]*).*/
ip_match = ip_list.scan(ip_list_re)

puts
if ip_match.length-1 <= 0
    puts "No RPi found!"
else
    puts (ip_match.length-1).to_s+" possible RPis found:"
end
ip_match.length.times do |i|
    puts "\t"+ip_match[i][0] if ip_match[i][0] != my_ip
end
puts

所以我会让它在同一个运行ruby代码的终端中执行ssh root@[FOUND_IP](当然,执行ssh-command时会停止ruby代码)如果只有一个可能的RPi -IP地址。

0 个答案:

没有答案