Script shell
freeman43
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila j'ecrit un script shell qui a pour but d aller rechercher une variable et de renvoyer en fonctions de celle-ci un message.
Le probleme est que lors de l'execution de celui-ci, monshell repond:
end of file unexpected (expecting "fi").
Voila mon script:
#!/bin/sh
####################################################################
#### By Franck Marrel
#### updated: 28/09/09
#### scripts afin de savoir si l'onduleur est sur battery ou secteur
####################################################################
STATE_OK=2
STATE_CRITICAL=1
battery='snmpget -v1 -c public '$arg' -c public 1.3.6.1.4.1.705.1.7.3.0'
if [ "$battery" = "$STATE_OK" ]
then
echo "Onduleur sur secteur"
exit $STATE_OK
else if [ "$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
d'ou vient mon probleme?
Merci de bien vouloir m'aider.
voila j'ecrit un script shell qui a pour but d aller rechercher une variable et de renvoyer en fonctions de celle-ci un message.
Le probleme est que lors de l'execution de celui-ci, monshell repond:
end of file unexpected (expecting "fi").
Voila mon script:
#!/bin/sh
####################################################################
#### By Franck Marrel
#### updated: 28/09/09
#### scripts afin de savoir si l'onduleur est sur battery ou secteur
####################################################################
STATE_OK=2
STATE_CRITICAL=1
battery='snmpget -v1 -c public '$arg' -c public 1.3.6.1.4.1.705.1.7.3.0'
if [ "$battery" = "$STATE_OK" ]
then
echo "Onduleur sur secteur"
exit $STATE_OK
else if [ "$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
d'ou vient mon probleme?
Merci de bien vouloir m'aider.
A voir également:
- Script shell
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
12 réponses
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
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
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?
normalement il ny a pas de probléme pour executer une commande comme cela, mais la ca ne fonctionne pas.
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)
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
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?
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 ?