#!/bin/bash a=(张三 李四 王五 赵六) for i in {0..3} do if ping -c 1 192.168.1. $((${i}+1)) >dev/null 2>&1;then echo $((${i}+1))"号"${a[${i}]}"在线" else echo $((${i}+1))"号"${a[${i}]}"离线" fi done
这串shell代码实现了ping 某个IP地址所对应的那个IP所使用的人名是否在线
这里面主要涉及到的知识点有 变量、数组、循环 、if判断、算术运算
在这里循环和if我不多讲!
主要是 变量、数组和算术运算的应用
首先我定义了一个数组变量分别是四个人的名称,然后定义了一个循环体循环体从0到3,也就是在下面应用时会对应数组中的 a[0]..a[3] 四个人的名字。
然后开始if判断,ping 192.168.1.0这个网段中所对应的序号1..4,分别对应不同的人 而由于在循环中的数是从0开始而ping网络地址需要从1开始 所以 这里就运用到了shell中的算术运算"$(())" 在其中我将循环体中是数都+1 所以 这样ping的时候其实就是ping 192.168.1.0+1 .. 192.168.1.3+1
下面的就简单了 就是显示 主机号 1..4 和 主机号所对于的人名。