shell语言练习for循环和if判断的小脚本

目录

需求:ping一下当前网段下的所有地址,能ping通的加入一个文件,不能ping通则加入另一个文件

这个for语言写法是仿C写法,可能是之前语言的印象比较深吧,也可以使用for i in {1..254}

for循环格式

if判断格式

两句命令要写到同一行,需要分号隔开,要不就换行书写

书写过程中遇到的小问题:

需要追加入文本文件是需要输出的,不使用echo输出会报寻找不到命令的错误

如果你还遇到了什么问题,也可以进行讨论

需求:ping一下当前网段下的所有地址,能ping通的加入一个文件,不能ping通则加入另一个文件

这个for语言写法是仿C写法,可能是之前语言的印象比较深吧,也可以使用for i in {1..254}
#!/bin/bash
for((i=1;i<255;i++)); do               //for循环,也可以写for i in {1..254}
{
     ip=10.12.155.${i}                //设置一个ip变量
     ping -c3 -W1 ${ip} &>/dev/null    //ping一下ip地址,不想看ping的过程,将过程扔到黑洞文件
     if [ $? -eq 0 ];then              //if进行判断
                echo ${ip} >>/nan/ping.txt       //能ping通将ip追加入ping.txt文本文件
     else
                echo ${ip} >>/nan/noping.txt   //不能ping通将ip追加入noping.txt文本文件
     fi             
}&
done  
for循环格式
for 变量名 in 取值列表
do
  执行命令
done
if判断格式
if [ 判断条件];then
   符合该条件执行的语句
elif [ 判断条件 ];then
   符合该条件执行的语句
else
   符合该条件执行的语句
fi
两句命令要写到同一行,需要分号隔开,要不就换行书写

书写过程中遇到的小问题:

需要追加入文本文件是需要输出的,不使用echo输出会报寻找不到命令的错误

echo ${ip} >>/nan/ping.txt   

echo ${ip} >>/nan/noping.txt 

如果你还遇到了什么问题,也可以进行讨论

你可能感兴趣的:(linux,shell,linux,服务器,网络)