gpt4 book ai didi

linux - 在 bash 脚本的 if 语句中使用 traceroute

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:30 26 4
gpt4 key购买 nike

我正在尝试根据 traceroute 是否从特定 IP 地址获得响应来执行代码。所以:

if traceroute 123.456.78.9
then
option 1
else
option 2

我的问题是,无论我是否从 IP 地址获得响应,选项 1 总是被执行。

我已经尝试使用“ping”而不是 traceroute 进行此操作并且它有效,但我没有在最终代码中使用 ping 的选项。

更多详情:

  1. 在 QNX 操作系统上运行
  2. 主机有响应为成功,主机无响应为失败
  3. 成功输出:

    traceroute to 123.456.78.9 (123.456.78.9), 1 hops max, 40 byte packets
    1 123.456.78.9 (123.456.78.9) 0.000 ms 1.000 ms 0.000 ms
  4. 失败输出:

    traceroute to 123.456.78.90 (123.456.78.90), 1 hops max, 40 byte packets
    1 *

最佳答案

问题是 traceroute 总是回显输出,即使没有有效的主机,所以你需要先检查有效的响应

您必须检查是否收到有效响应

尝试使用

n=`traceroute 123.456.78.9|grep ms|wc|sed 's/ //g' |cut -d ' ' -f 1`

if [ $n -eq 0 ]
then
echo 'failed'
else
echo 'success'
fi

关于linux - 在 bash 脚本的 if 语句中使用 traceroute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628162/

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