Script shell
Fermé
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
-
28 sept. 2009 à 14:08
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 sept. 2009 à 16:49
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 sept. 2009 à 16:49
A voir également:
- Script shell
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
12 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 sept. 2009 à 14:10
28 sept. 2009 à 14:10
essai elif à la place de else if.
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
16
28 sept. 2009 à 14:20
28 sept. 2009 à 14:20
Merci en changeant else if par elif ca fonctionne, mais du coup doij' mettre 2 fi a la fin?
et ma variable battery ne prend pas ma commande. Car il ne prend pas l'argument. comment cela se fait?
battery=$(snmpget -v1 -c public '$arg' 1.3.6.1.4.1.705.1.7.3.0)
merci
et ma variable battery ne prend pas ma commande. Car il ne prend pas l'argument. comment cela se fait?
battery=$(snmpget -v1 -c public '$arg' 1.3.6.1.4.1.705.1.7.3.0)
merci
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 sept. 2009 à 14:36
28 sept. 2009 à 14:36
si tu mets elif, un seul fi, sinon deux. En fait nos deux réponses sont justes ;-)
pour une commande, 2 choix : $(commande) ou `commande`. ATTENTION, il s'agit de ` (alt+ctrl+"7") et non de ' ("4") comme caractère.
pour une commande, 2 choix : $(commande) ou `commande`. ATTENTION, il s'agit de ` (alt+ctrl+"7") et non de ' ("4") comme caractère.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
16
28 sept. 2009 à 14:43
28 sept. 2009 à 14:43
je fais cela:
battery=$(snmpget -v1 -c public `$arg` 1.3.6.1.4.1.705.1.7.3.0)
et j'ai maintenant un probléme dans la commande, mais je ne c pas d'ou?
battery=$(snmpget -v1 -c public `$arg` 1.3.6.1.4.1.705.1.7.3.0)
et j'ai maintenant un probléme dans la commande, mais je ne c pas d'ou?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 sept. 2009 à 14:50
28 sept. 2009 à 14:50
je ne sais pas si tu peux enchainer deux commandes ainsi.
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
16
28 sept. 2009 à 14:55
28 sept. 2009 à 14:55
normalement il ny a pas de probléme pour executer une commande comme cela, mais la ca ne fonctionne pas.
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
28 sept. 2009 à 15:39
28 sept. 2009 à 15:39
Salut,
Et elle sort d'où cette variable ? ($arg)
En plus elle doit être entre des quotes doubles sous peine de ne pas être interprétée ;-((
Et elle sort d'où cette variable ? ($arg)
En plus elle doit être entre des quotes doubles sous peine de ne pas être interprétée ;-((
battery=$(snmpget -v1 -c public "$arg" 1.3.6.1.4.1.705.1.7.3.0)
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
16
28 sept. 2009 à 15:55
28 sept. 2009 à 15:55
salut,
Cette variable $arg et passe en paramétre a mon script.
meme en mettant les double quote, j'ai une erreur car le script ne trouve pas l'objet dans la mib alors que celui-ci existe bien.
pour executer mon script je fait bien pourtant:
./script 192.168.X.X
Et avant j'ai effectuer un chmod 777 script.sh
Cette variable $arg et passe en paramétre a mon script.
meme en mettant les double quote, j'ai une erreur car le script ne trouve pas l'objet dans la mib alors que celui-ci existe bien.
pour executer mon script je fait bien pourtant:
./script 192.168.X.X
Et avant j'ai effectuer un chmod 777 script.sh
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
28 sept. 2009 à 16:05
28 sept. 2009 à 16:05
Cette variable $arg et passe en paramétre a mon script.
Alors essaie avec "$1", ça devrait aller mieux :
Alors essaie avec "$1", ça devrait aller mieux :
battery=$(snmpget -v1 -c public "$1" 1.3.6.1.4.1.705.1.7.3.0);-))
freeman43
Messages postés
110
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
10 décembre 2009
16
28 sept. 2009 à 16:11
28 sept. 2009 à 16:11
oui ca va beaucoup mieux mais maintenant je m'apercoit que ma boucles if ne fonctionne pas.
J'ai toujours 2 en retour.
#!/bin/sh
####################################################################
#### By Franck Marrel
#### updated: 28/09/09
#### scripts afin de savoir si l'onduleur est sur battery ou secteur
####################################################################
STATE_OK=1
STATE_CRITICAL=2
battery=`snmpget -v1 -c public "$1" 1.3.6.1.4.1.705.1.7.3.0|cut -f 4 -d ":"`
echo battery = $battery //2
if [ "$battery = $STATE_OK" ]
then
echo "Onduleur sur secteur"
exit $STATE_OK
elif [ "$battery = $STATE_CRITICAL" ]
then
echo "Onduleur sur battery"
exit $STATE_CRITICAL
else
echo "Pas de données reçues de l'hôte"
exit 0
fi
comment cela se fait?
J'ai toujours 2 en retour.
#!/bin/sh
####################################################################
#### By Franck Marrel
#### updated: 28/09/09
#### scripts afin de savoir si l'onduleur est sur battery ou secteur
####################################################################
STATE_OK=1
STATE_CRITICAL=2
battery=`snmpget -v1 -c public "$1" 1.3.6.1.4.1.705.1.7.3.0|cut -f 4 -d ":"`
echo battery = $battery //2
if [ "$battery = $STATE_OK" ]
then
echo "Onduleur sur secteur"
exit $STATE_OK
elif [ "$battery = $STATE_CRITICAL" ]
then
echo "Onduleur sur battery"
exit $STATE_CRITICAL
else
echo "Pas de données reçues de l'hôte"
exit 0
fi
comment cela se fait?
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
28 sept. 2009 à 16:27
28 sept. 2009 à 16:27
Ca ne vient pas de la boucle ça, mais du retour de ta commande.
Est-ce qu'en fonction des différents paramètres elle renvoie autre chose que "2".
En fait elle renvoie quoi cette commande ?
Est-ce qu'en fonction des différents paramètres elle renvoie autre chose que "2".
En fait elle renvoie quoi cette commande ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 sept. 2009 à 16:49
28 sept. 2009 à 16:49
je trouve étrange ta comparaison, enfin les guillemets surtout.
[ "$battery" = "$STATE_CRITICAL" ]
ou[ $battery = $STATE_CRITICAL ]
Mais les guillements qui entourent la condition, c'est étrange. Test :
[ "$battery" -eq "$STATE_CRITICAL" ]
[ "$battery" = "$STATE_CRITICAL" ]
ou[ $battery = $STATE_CRITICAL ]
Mais les guillements qui entourent la condition, c'est étrange. Test :
[ "$battery" -eq "$STATE_CRITICAL" ]