#!/bin/bash

awk -F "." '{
    if(NF==4){
        for(i=1;i<5;i++){
            if($i>255 || $i<0){
                print("no")
                break
            }
            if(i==4){
                print("yes")
            }
        }
    }
    else{
        print("error")
    }
}' nowcoder.txt

解题思路:

1.要判断是否有四段号码,首先想到的是用awk -F的命令以"."为分隔符,NF判断是否存在四个域来判断是否有四段号码

2.之后进行判断,如果存在四段则进行下一步的条件判断,如果不存在则直接输出"error"

3.判断存在四段后对是否为正确的IP地址进行判断,所以要分别对每一段号码进行判断是否在[0-255]之间 ,因此用到for循环,如果都在则输出"yes",只要有一个不在就跳出循环,并输出"no"

4.如果i==4了说明四段号码都符合条件,则输出"yes"