Bash
包含 IP 地址的變數的算術運算
我有變數
network="198.168.1.x" # for ex. 198.168.1.254
我想創建新變數:
next_serv="198.168.1.(x-1)" # for ex. 198.168.1.253 max_host="198.168.1.(x-2)" # for ex. 198.168.1.252
怎麼做?
簡單的方法是拆分“。”上的值。標記並進行算術運算,再次將結果放在一起。
使用 awk (處理分隔符等):
this_serv=192.168.1.100 next_serv=$(echo $this_serv | awk -F. '{printf "%d.%d.%d.%d", $1,$2,$3,$4-1}')
network="198.168.1.254" IFS="." read -r a b c d <<< "$network" next_serv="$a.$b.$c.$(($d-1))" echo "$next_serv"
輸出:
198.168.1.253