#!/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...