gpt4 book ai didi

ruby - 如何使用 `ip route` 从 'src' 命令的输出中选择 IP 地址

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:09 25 4
gpt4 key购买 nike

如果我在终端上运行以下命令,它会给出 IP 地址值

ip route get 8.8.8.8 | grep -oP '(?<=src )(\d{1,3}.){4}'

但是当我用 '2>&1' 运行相同的命令时,它返回空字符串:

output = ''
IO.popen("ip route get 8.8.8.8 | grep -oP '(?<=src )(\d{1,3}.){4}' 2>&1", 'r+') do |f|
output = f.read.strip
end
puts output.inspect

请指导我理解上述场景。我需要添加哪些修改才能获取 IP 地址。

最佳答案

与重定向无关。在 Ruby 中,字符串中的反斜杠必须进行转义。只需将 \ 替换为 \\:

output = ''
IO.popen("ip route get 8.8.8.8 | grep -oP '(?<=src )(\\d{1,3}.){4}' 2>&1", 'r+') do |f|
output = f.read.strip
end
puts output.inspect

关于ruby - 如何使用 `ip route` 从 'src' 命令的输出中选择 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com