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è

(altro…)

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:

hex=({{0..9},{a..f}}{{0..9},{a..f}})
echo ${hex[*]}
(altro…)

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 prima cosa dobbiamo sapere il valore massimo del numero binario da ottenere in Bash ovvero in quanti bit potrà essere compreso.

(altro…)

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

(altro…)

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]
(altro…)

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

(altro…)

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
(altro…)