我不是问如何在后台使用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地址。