#1 Le 14/03/2010, à 17:42
- droopy191
[Résolu] [bash] nom de variable en paramètres
Salut,
Question surement toute bete pour les pros du bash mais je coince.
J'essaie de faire un script pour du wake on lan en fonction du nom de machine avec une table de correspondance ( nom / adresse mac ).
script démarré par wakeup.sh nom_machine
#!/bin/sh
# Script de démarrage des machines par wake on lan
#### Table des adresses mac ####
machine1="00...."
machine2="00...."
echo Réveil de $1
wakeonlan adresse de m1 ou m2 suivant la valeur de $1
Je pourrai faire un case $1 = machine1, machine2... mais n'y aurait il pas plus simple ?
Merci pour vos conseils.
Dernière modification par droopy191 (Le 14/03/2010, à 19:19)
Hors ligne
#2 Le 14/03/2010, à 18:15
- gilbert
Re : [Résolu] [bash] nom de variable en paramètres
Salut,
j'ai absolument rien compris de ta question, mais tu veux faire qqch du genre ?
#!/bin/sh
# Script de démarrage des machines par wake on lan
#### Table des adresses mac ####
machine1="00...."
machine2="00...."
eval recup=\$$1
echo "réveil de $recup"
Simplement moi-même..
Hors ligne
#3 Le 14/03/2010, à 19:05
- droopy191
Re : [Résolu] [bash] nom de variable en paramètres
Salut,
j'ai absolument rien compris de ta question, mais tu veux faire qqch du genre ?
Désolé si ce n'était pas clair.
J'essaie d'expliquer
j'appelle mon script par
wakeup.sh nom_machine
donc dans $1 j'ai un nom de machine ( par ex, machine1 )
comment faire pour faire correspondre $1 qui contient le nom de la machine avec mon autre variable machine1 qui contient l'adresse mac.
je peux faire comme ca mais n'y a-t'il pas plus simple ? Par plus simple, je veux dire lister toutes les machines dans un case/esac.
case $1 in
"machine1")
echo "réveil de $1"
wakeonlan $machine1
;;
"machine2")
echo "réveil de $1"
wakeonlan $machine2
;;
esac
Dernière modification par droopy191 (Le 14/03/2010, à 19:08)
Hors ligne
#4 Le 14/03/2010, à 19:13
- gilbert
Re : [Résolu] [bash] nom de variable en paramètres
bin t'as essayé mon exemple ??
Non apparamment
Simplement moi-même..
Hors ligne
#5 Le 14/03/2010, à 19:18
- droopy191
Re : [Résolu] [bash] nom de variable en paramètres
bin t'as essayé mon exemple ??
Non apparamment
En effet, j'ai répondu avant d'essayer
Ca marche parfaitement, merci.
Très bete script mais si ca peut servir à qq'un
#!/bin/sh
# Script de démarrage des machines par wake on lan
#### Table des adresses mac ####
machine1="00:2...."
machine2="00:1..."
machine3="00:3..."
# début du script
eval machine=\$$1
if [ "$machine" == "" ]
then echo "La machine nommée $1 n'est pas connue !"
echo "Editez le script et ajoutez son adresse mac";
else
echo "Réveil de $machine"
wakeonlan $machine;
fi
Dernière modification par droopy191 (Le 14/03/2010, à 19:39)
Hors ligne
#6 Le 14/03/2010, à 21:14
- Totor
Re : [Résolu] [bash] nom de variable en paramètres
Bonsoir,
[...]
eval recup=\$$1
echo "réveil de $recup"
à remplacer par echo "réveil de ${!1}"
-- Lucid Lynx --
Hors ligne
#7 Le 14/03/2010, à 22:06
- gilbert
Re : [Résolu] [bash] nom de variable en paramètres
Bonsoir,
gilbert a écrit :[...]
eval recup=\$$1
echo "réveil de $recup"à remplacer par echo "réveil de ${!1}"
excellent!! Je ne connaissais pas! ça existe depuis quelle version de bash ?
EDIT : je me réponds à moi même. j'ai trouvé en lisant le HISTORY de bash. C'est à partir de bash 3.00
Pour ceux que ça intéresse : http://mywiki.wooledge.org/BashFAQ/006
Dernière modification par gilbert (Le 14/03/2010, à 22:18)
Simplement moi-même..
Hors ligne