Bonjour,
J'ai un petit problème avec mon script bash. Pour expliquer l'idée de ce bash, je souhaiterais récupéré l'ip d'une machine en fonction de son interface (eth0 ou bond0). Donc j'ai mis mes commandes (qui fonctionne) dans des variables et je les ai testé avec un eval, cela fonctionne. Puis j'ai essayé de mettre en place un case en fonction de ma commande d'obtention de l'interface et là, rien ne s'affiche.
Voici le code bash :
donc quand j'essaie de faire un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/bin/bash OBTENTION_INTERFACE="ifconfig | awk '{print "'$1'","'$2'"}' | grep -v '127.0.*' | awk '{print "'$1'"}' | grep -v 'inet6' | grep -B 1 'inet' | sed '1!d' | sed 's/://g'" IP_BOND0="ifconfig bond0 | grep 'inet\|inet addr:' | awk '{print "'$2'"}' | cut -d ":" -f 2" IP_ETH0="ifconfig eth0 | grep 'inet\|inet addr:' | awk '{ print "'$2'"}' | cut -d ":" -f 2" case $OBTENTION_INTERFACE in 'eth0') eval $IP_ETH0 ;; 'bond0') eval $IP_BOND0 ;; esacen dehors du case, j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part eval $OBTENTION_INTERFACEPuis je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part eth0et j'obtiens bien mon
Code : Sélectionner tout - Visualiser dans une fenêtre à part eval $IP_ETH0Donc je me posais la question, pourquoi en dehors du 'case' ça marche et quand j'assemble le tout, je n'obtiens rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 192.168.0.15
Merci d'avance pour vos réponses et bonne journée.
Max
Partager