[BASH] Problème choix 'case'
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 :
Code:
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
;;
esac |
donc quand j'essaie de faire un
Code:
eval $OBTENTION_INTERFACE
en dehors du case, j'obtiens : Puis je fais un et j'obtiens bien mon Donc je me posais la question, pourquoi en dehors du 'case' ça marche et quand j'assemble le tout, je n'obtiens rien.
Merci d'avance pour vos réponses et bonne journée.
Max