変数として保存された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)