|
|
|
|
Bonjour à tous,
Je cherche a exécuter un script qui me permettre de traduire un ip hexadécimal en décimal.
Voici mon script :
#!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in "$IPHEXA" do compteur=`expr $compteur + 1` test."$compteur"=`echo $((16#$i))` done echo "$test.1"."$test.2"."$test.3"."$test.4"
+ expr 0
compteur=0
IPHEXA=C0 A8 00 01
+ expr 0 + 1
compteur=1
./script.ip.sh: syntax error at line 1: `(' unexpected
Salut,
#!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in $IPHEXA; # pas de double quotes sinon, cela représente un seul élément. do compteur=`expr $compteur + 1` # Une variable ne peut contenir un point dans son nom. donc '.' => '_' eval test_$compteur=`echo $((16#$i))` # pour des nom de variable dynamique, utiliser eval <definition de variable>=<valeur> done echo "$test_1"."$test_2"."$test_3"."$test_4" A plus :-) Une belette, un lapin !? C'est pas normal! |
Voici mes tests :
bash-2.03$ eval echo $((16#C0)) 192 bash-2.03$ echo $((16#C0)) 192 for i in $IPHEXA; do compteur=`expr $compteur + 1` eval "echo $((16#"$i"))" done + expr 0
compteur=0
IPHEXA=C0 A8 00 01
+ expr 0 + 1
compteur=1
+ eval echo $((16#C0))
./script.ip.sh: syntax error at line 1: `(' unexpected
Je ne comprends pas pourquoi ça fonctionne bien en ligne de commande mais pas dans mon script...
|