Bash: trucs et astuces

De TechWik
Révision datée du 27 août 2015 à 08:04 par Toine (discussion | contributions) (Page créée avec « == Fonctions utiles == === Conversions === # conversion netmask => cidr # ex: mask2cidr 255.255.128.0 --> 17 # suppose qu'il n'y a plus de "255." après un octet no... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Fonctions utiles

Conversions

 # conversion  netmask => cidr
 # ex: mask2cidr 255.255.128.0 --> 17
 # suppose qu'il n'y a plus de "255." après un octet non-255
 mask2cidr ()
 {
   local x=${1##*255.}
   set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*}
   x=${1%%$3*}
   echo $(( $2 + (${#x}/4) ))
 }
 # conversion cidr => netmask 
 # ex: cidr2mask 17 --> 255.255.128.0
 cidr2mask ()
 {
   set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
   [ $1 -gt 1 ] && shift $1 || shift
   echo ${1-0}.${2-0}.${3-0}.${4-0}
 }