![쉘에서 ipv4 주소를 확인하는 방법. 예를 들어 *.*.1.*입니까, 아니면 *.*.0.*입니까?](https://linux55.com/image/144035/%EC%89%98%EC%97%90%EC%84%9C%20ipv4%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.%20%EC%98%88%EB%A5%BC%20%EB%93%A4%EC%96%B4%20*.*.1.*%EC%9E%85%EB%8B%88%EA%B9%8C%2C%20%EC%95%84%EB%8B%88%EB%A9%B4%20*.*.0.*%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
그래서 여기에서는 ifconfig 파일에서 가져오려고 시도하지만 간단한 ifconfig 명령으로 동일한 오류가 발생합니다.
!#/bin/sh
if [/home/pi/ifconfig | grep -Eo ‘inet (addr:)?([0-9]*\.){3}[0-9]*’ | grep -Eo ‘([0-9]*\.){3}[0-9]*’ | grep -v ‘127.0.0.1’ = *.*.1.*]
then
echo “good1”
else
echo “notGood2”
fi
오류가 발생했습니다.
test: 2: test: [/home/pi/ifconfig: not found
grep: =: No such file or directory
grep: *.*.1.*]: No such file or directory
notGood2
답변1
이를 사용하여 ip addr
호스트에 있는 모든 인터페이스와 서브넷의 IP 주소를 표시할 수 있습니다.
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }'
127.0.0.1/8
192.168.0.2/24
서브넷에 관심이 없으면 삭제할 수 있습니다.
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }' | cut -d/ -f1
127.0.0.1
192.168.0.2
설명에 따르면 어떤 이유로 IP 주소의 세 번째 옥텟이 무엇인지 확인하려는 경우 간단합니다.
# given this:
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }'
127.0.0.1/8
192.168.25.2/24
# we can do this:
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }' | cut -d. -f3
0
25
답변2
#!/bin/bash
for i in $(/sbin/ifconfig | grep inet | awk '{print $2}')
do
if [[ $i =~ ^[0-9]{1,3}\.[0-9]{1,3}\.1|0.[0-9]{1,3}$ ]]; then
echo "$i good1"
else
echo "$i notGood2"
fi
done
답변3
답을 찾았습니다. i = 1이기 때문에 설명하겠습니다.
i=1
if [ $i = 1 ]; then
echo $i good1
else
echo $i notGood2
fi
어차피 그게 내가 원했던 거고 여러분 모두가 내가 정답을 얻을 수 있도록 도와줬어요! 감사해요