Aide sur script shell convertir ip hexa
Fermé
bir0ute
-
24 oct. 2008 à 09:30
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 oct. 2008 à 20:01
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 oct. 2008 à 20:01
4 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
24 oct. 2008 à 09:50
24 oct. 2008 à 09:50
hello
et comme ça
IPHEXA="0xC0 0xA8 0x00 0x01"
printf "%d.%d.%d.%d" $IPHEXA
192.168.0.1
et comme ça
IPHEXA="0xC0 0xA8 0x00 0x01"
printf "%d.%d.%d.%d" $IPHEXA
192.168.0.1
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
24 oct. 2008 à 10:50
24 oct. 2008 à 10:50
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...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 oct. 2008 à 12:12
24 oct. 2008 à 12:12
Salut,
Enlève les quotes :
Enlève les quotes :
eval "echo $((16#"$i"))" eval echo $((16#$i));-))
bir0ute
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
24 oct. 2008 à 16:06
24 oct. 2008 à 16:06
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
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
bir0ute
24 oct. 2008 à 17:59
24 oct. 2008 à 17:59
Que te renvoie les commandes suivantes :
readlink -f /bin/sh ls -l /bin/sh
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
24 oct. 2008 à 18:17
24 oct. 2008 à 18:17
Je ne vois que ça en effet :)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
24 oct. 2008 à 20:01
24 oct. 2008 à 20:01
Salut,
~$ for i in C0 A8 00 01;do echo -e "$(echo "ibase=16;$i" | bc) \c";done;echo 192 168 0 1
24 oct. 2008 à 10:05
bash-2.03$ IPHEXA="0xC0 0xA8 0x00 0x01"
bash-2.03$ printf "%d.%d.%d.%d" $IPHEXA
bash: printf: 0xC0: illegal number
24 oct. 2008 à 10:34
24 oct. 2008 à 10:36
/usr/bin/printf
24 oct. 2008 à 12:49
IPHEXA="0xC0 0xA8 0x00 0x01"
/usr/bin/printf "%d.%d.%d.%d" $IPHEXA