Aide sur script shell convertir ip hexa
bir0ute
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour à tous,
Je cherche a exécuter un script qui me permettre de traduire un ip hexadécimal en décimal.
Voici mon script :
Et voici ce que j'ai en retour :
Merci de votre aide.
Sab.
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"
Et voici ce que j'ai en retour :
+ expr 0 compteur=0 IPHEXA=C0 A8 00 01 + expr 0 + 1 compteur=1 ./script.ip.sh: syntax error at line 1: `(' unexpected
Merci de votre aide.
Sab.
A voir également:
- Aide sur script shell convertir ip hexa
- Ethernet n'a pas de configuration ip valide - Guide
- Classic shell - Télécharger - Personnalisation
- Comment connaître son adresse ip - Guide
- Script vidéo youtube - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
Salut,
Essayes avec ça:
A plus :-)
Essayes avec ça:
#!/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 :-)
voici mes tests :
Je ne comprends pas pourquoi ça fonctionne bien en ligne de commande mais pas dans mon script...
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...
Bah non toujours le meme probleme :
bash-2.03$ cat script.ip.sh #!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in $IPHEXA; do compteur=`expr $compteur + 1` eval echo $((16#$i)) done echo "$test_1"."$test_2"."$test_3"."$test_4" bash-2.03$ ./script.ip.sh + expr 0 compteur=0 IPHEXA=C0 A8 00 01 ./script.ip.sh: syntax error at line 12: `(' unexpected
bash-2.03$ IPHEXA="0xC0 0xA8 0x00 0x01"
bash-2.03$ printf "%d.%d.%d.%d" $IPHEXA
bash: printf: 0xC0: illegal number
/usr/bin/printf
IPHEXA="0xC0 0xA8 0x00 0x01"
/usr/bin/printf "%d.%d.%d.%d" $IPHEXA