• linux菜鸟日记(4)


    使用一个简单的for循环和if判断语句实现某个网段内所有ping所有客户机的shell程序:

    for i in {1..254}
    do
    if ping -c 1 192.168.10.${i} >/dev/null 2>&1;
    then
    echo " ${i}通"
    else
    echo "${i}未通 "
    fi
    done

    在这里i是一个循环变量,一共循环254次,${i}相当于192.168.10.0这个网段中从1~254的主机号。

    for循环开始然后进行if判断:

    判断 ping 192.168.10.xxx这个网段中的所有主机号中如果是标准输出就 ">"(重定向到)/dev/null这个文件中

    then 如果是标准输出 那么就显示 ${i}(这个主机)通

    "2>&1"  表示错误输出同样重定向到/dev/null文件下

    else 如果是错误输出 那么就显示${i}(这个主机)不通

    在这段程序中 ping -c 1 表示每个主机只ping一次。

    这段程序中主要的点就是  ”192.168.10.${i} >/dev/null 2>&1“

    首先要明白 dev下的null文件有什么用。这个null文件相当于windows下的回收站,但是在这个null中的东西是无法恢复的。

    在这里ping 每个客户机时如果有返回值也就是ping通了,那么就属于一个标准输出这个标准输出就把他丢到 /dev/null中 如果不这样做你ping的返回数据会占用系统的某个空间。 在这里所有标准输出都会是1 而 2就表示错误输出 ,&符号表示等同于   “2>&1” 这里就表示 错误输出 等同于 标准输出(不代表 错误输出 等于 标准输出) 这样才能将错误输出也放到/dev/null中。

    通过这样一个for循环加if判断就能实现ping所有主机号并返回一个 通 或者 没通 的信息。

  • 相关阅读:
    【sqlserver】sqlserver表中导入大批量数据
    java中json结果检查
    spoj375Query on a tree树链剖分
    Hdu4737 ( A Bit Fun ) 线段树
    CodeForces 274E. Riding in a LiftDp
    D. Red-Green Towers Dp
    Hdu5067旅行商
    Hdu5068线段树
    uva11992线段树
    uva1400线段树
  • 原文地址:https://www.cnblogs.com/zhangzhongming/p/5959377.html
Copyright © 2020-2023  润新知