shell中自定義ip2long函式

2021-09-01 01:33:31 字數 607 閱讀 2629

#!/bin/bash

function ip2long()

function long2ip()"

(( ip >>= 8 ))

net=".$(( ip - (ip >> 8 << 8 ) ))$"

(( ip >>= 8 ))

net=".$(( ip - (ip >> 8 << 8 ) ))$"

(( ip >>= 8 ))

net="$$"

echo $net

}ip=$

mask=$

ip=$(ip2long $ip)

mask=$((((1<<32)-1)<<(32-mask)))

net=$(long2ip $((ip&mask)))

echo $net

用法:./ip.sh 192.168.5.220/24

根據乙個ip/mask的形式,來計算實際的網路位址

方法是用 mask個1與32-mask個0與ip相與,得到乙個新的ip位址,那個位址就是網路位址

想法就是把ip轉換成長整數,然後與mask相與後,再轉換成點分的表示法

shell自定義函式

1 語法 function funname action return int 2 說明 1 必須在呼叫函式地方之前,先宣告函式,shell指令碼是逐行執行。不會像其它語言一樣先預編譯 2 函式返回值,只能通過 系統變數獲得,可以顯示加 return 返回,如果不加,將以最後一條命令執行結果,作為返...

Shell自定義函式

函式定義 function funname 函式呼叫 funname注 1 在呼叫函式地方之前,先宣告函式,shell指令碼是逐行執行。2 函式返回值,只能通過 系統變數獲得,可以顯示加 return返回,如果不加,將以最後一條命令執行結果,作為返回值,return後跟數值n 0 255 mubai...

shell自定義函式

參考 sum fsum 2 5 這種方式,是將標準輸出 echo 出來的東子 傳遞給主程式的變數,而不是返回值!bin bash function sum call function with 2 parameters and it return 1 parameter.ret val sum 10...