변수로 저장된 IP 주소의 마지막 숫자를 변경하려고 합니다.
ip=$(ifconfig eth0 | grep "inet addr" | awk -F: '{print $2} | awk '{print $1}')
출력은 다음과 같겠지만 192.168.0.1
내가 원하는 것은 변수를 다른 마지막 옥텟으로 설정하는 것입니다.192.168.0.2
답변1
이 nextip()
쉘 함수는 마지막 숫자를 변경하여 다음 가능한 IP 주소를 인쇄합니다.
#!/bin/sh
nextip() {
d=${1##*.}
while true; do
d=$(( (d+1) & 255 ))
case $d in
0|255) ;;
*) break
esac
done
echo ${1%.*}.$d
}
nextip 192.168.0.1
nextip 192.168.0.254
산출:
192.168.0.2
192.168.0.1
명령 대체와 함께 이를 사용할 수 있습니다.
ip1=$(ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}')
ip2=$(nextip $ip1)