Come convertire una netmask IPV4 in CIDR

Per passare da una netmask IPV4 a l’equivalente CIDR potrebbe venir in mente di fare la cosa più semplice ovvero utilizzare un blocco case o degli if annidati per ottenere il CIDR equivalente tanto i netmask o CIDR disponibili sono solo 32 e cioè NetmaskAddress/CIDRAdresses255.255.255.255a.b.c.d/3220255.255.255.254a.b.c.d/3120255.255.255.252a.b.c.d/3021255.255.255.248a.b.c.d/2922255.255.255.240a.b.c.d/2823255.255.255.224a.b.c.d/2724255.255.255.192a.b.c.d/2625255.255.255.128a.b.c.d/2526255.255.255.0a.b.c.0/2427255.255.254.0a.b.c.0/2328255.255.252.0a.b.c.0/2229255.255.248.0a.b.c.0/21210255.255.240.0a.b.c.0/20212255.255.224.0a.b.c.0/19213255.255.192.0a.b.c.0/18214255.255.128.0a.b.c.0/17215255.255.0.0a.b.0.0/16216255.254.0.0a.b.0.0/15217255.252.0.0a.b.0.0/14218255.248.0.0a.b.0.0/13219255.240.0.0a.b.0.0/12220255.224.0.0a.b.0.0/11221255.192.0.0a.b.0.0/10222255.128.0.0a.b.0.0/9223255.0.0.0a.0.0.0/8224254.0.0.0a.0.0.0/7225252.0.0.0a.0.0.0/6226248.0.0.0a.0.0.0/5227240.0.0.0a.0.0.0/4228224.0.0.0a.0.0.0/3229192.0.0.0a.0.0.0/2230128.0.0.0a.0.0.0/12310.0.0.00.0.0.0/0232Netmask to CIDR Se vogliamo, invece, realizzare una funzione che converta Continua a leggere

Convertire da Bash un numero decimale in esadecimale

Come per la faq con la conversione in binario anche in questa facciamo utilizzo delle fantastiche estensioni bash sulle parentisi graffe per convertire in esadecimale. Quindi, considerando sempre la faq bash sul binario partiamo inizialmente con il convertire un numero decimale tra 0 e 255 che corrisponde ad una cifra esadecimale tra 0 ed FF: Continua a leggere

Convertire da Bash un numero decimale in binario

Supponiamo di star lavorando su uno script bash e che per qualche esigenza, nemmeno troppo difficile dalla realtà, sia indispensabile dover convertire un numero o una variabile decimale in numero binario. Ci sono naturalmente diverse soluzioni ma quella che vi propongo non fa utilizzo di programmi esterni ma è bash a tutti gli effetti. Per Continua a leggere

Uso di array associativi in bash

Per dichiarare un array associativo bisogna dichiararlo con declare -A mioarray/ e come indice si può utilizzare una stringa, questo significa che mioarray[test]=’aa’ echo ${mioarray[test]} # restituisce ‘aa’   Vedi tutte le FAQs

Uso di array semplici in bash

Con Bash per dichiarare esplicitamente un array bisogna utilizzare declare -A mioarray Per avere il valore dell’elemento 5 basta scrivere echo $[mioarray[5] mentre per cambiare il valore  bisogna scrivere mioarray[5]=’nuovo valore’ ${mioarray[*]} o ${mioarray[@]} viene espanso da tutti i valori dell’array mentre $[#mionome[@]} viene espanso con la lunghezza dell’array Cosa possiamo fare con gli array? Continua a leggere

Redirigere lo standard error sullo standart output

Per redirigere lo standard error di un comando in shell basta utilizzare la seguente sinstassi seguente: ls file_non_esistente 2>&1 | grep File oppure ancor meglio per non avere sul terminale lo standard error basta buttarlo in /dev/null ls file_non_esistente 2>/dev/null Gli identificativi standard o canali standard (o standard streams) aperti automaticamente sono: 0 standard input Continua a leggere

Rinominare un gruppo di file in base ad una regexpr

Supponiamo di voler rinominare il nome di un gruppo di file che hanno il seguente template: file1_tmp.sh file2_tmp.sh … file99_tmp.sh e supponiamo di voler togliere la parte centrale ‘_tmp’ in tutti i file. Possiamo utilizzare il comando “rename” o “prename”: rename ‘s/_tmp//’ *.sh   Vedi tutte le FAQs