Plateformes d'assistanceDiscussions & Opinions des Communautés
|
|
|
|
Script shell \ if else elif fin sinon fin si
Dernière réponse le 26 mai 2009 à 23:05:19 tmedtcom, le 26 mai 2009 à 19:37:21Bonjour,
salut a tous et a toutes.
j'ai besoin de l'aide pour un script shell juste pour la stricture d'une suite de
si (....) alors ..... si non si (....) alors................
il y a une partie du svripte qui fait remplie les case du tableau chaque case contient ine chaine de caractère
et voiçi la forme général du script:
j=$(($i - 1))
# j est le nombre de case du tableau
#p1;p2;.....;p7 sont des paramètres de sortie je les fait initiatisation
p1=""
p2=""
p3=""
p4=""
p5=""
p6=""
p7=""
for k in `seq 0 $j`
do
if [ ${tab[$k]} = "-A" ]
then
for l in `seq 1 $j`
do
#traitement du chaine INPUT OUTPUT FORWARD
if [а ${tab[$l]} = "INPUT" ] && [ $p1 = ""] ]
then
p1="entrée au machine"
elif [ ${tab[$l]} = "OUTPUT" ] && [ $p1 = ""] ]
then
p1="sortie du machine"
elif [ [ ${tab[$l]} = "FORWARD"а ] && [ $p1 = ""] ]
then
p1="passé a travers la machine"
fin si non
fin si non
fin si
#accept drop reject
if [ [ ${tab[$l]} = "ACCEPT" ] && [ $p2 = ""а] ]
then
p2="accepté"
elif [ [ ${tab[$l]} = "REJECT" ] && [ $p2 = ""а] ]
then
p2="rejeté"
elif [ [ ${tab[$l]} = "DROP" ] &&[ $p2 = ""а] ]
then
p2="dropé"
fin si non
fin si non
fin si
#protocol
if [ [ ${tab[$l]} = "-p" ] && [ $p3 = ""а] ]
then
p3="${tab[$l+1]}"
elif [ $p3="" ]
then
p3="quelque soit"
fin si non
fin si
#@ip-source
if [ [ ${tab[$l]} = "-s" ] && [ $p4= ""а] ]
then
p4="${tab[$l+1]}"
elif [ $p4="" ]
then
p4="quelque soit"
fin si non
fin si
#@ip-destination
if [ [ ${tab[$l]} = "-d" ] && [ $p5 = ""а] ]
then
p5="${tab[$l+1]}"
elif [ $p5="" ]
then
p5="quelque soit"
fin si non
fin si
#port-source
if [ [ ${tab[$l]} = "--sport" ] && [ $p6= ""а] ]
then
p6="${tab[$l+1]}"
elif [ $p6="" ]
then
p6="quelque soit"
fin si non
#port-destination
if [ [ ${tab[$l]} = "--dport" ] && [ $p7 = ""а] ]
then
p7="${tab[$l+1]}"
elif [ $p7="" ]
then
p7="quelque soit port destination"
fin si non
fin si
done # cette done est pour le fin du boucle for
echo -e "\n### --sens$p1 --desision:$p2 --prot:$p3 --@ip_s:$p4 --@ip_d:$p5 --sport:$p6 --dport:$p7 ###" fin si # cette fin si est pour la condition avant le boucle for
done # cette done est pour la fin du 1ere boucle for
- premièrement je ne sait pas comment fermer l'instruction if et elif c'est a dir remplacer fin si non et fin si par le syntaxe necessaire.
- deuxièment je pentse que les faute son dans les lignes du condition if
==> j'espère que je trouve dans cette forum le réponce et merci d'avance
Configuration: Windows Vista Firefox 3.0.10
Meilleures réponses pour « script shell \ if else elif fin sinon fin si » dans :
Exécuter un script shell VoirExécution d'un script
Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités :
1. Le chemin absolu
2. Le chemin relatif
3. Modifier la variable PATH
Note: Le Sha-Bang
Premièrement,...
VBScript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ?
On appelle structure conditionnelle les instructions qui permettent de tester
si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0
ou 1 (VBScript associe le mot clé true à...
Désolé mon pote, mais ça marche pas je ne sait pas ou est le problème exactement???
./tmed.sh: line 38: [: too many arguments ./tmed.sh: line 43: [: too many arguments ./tmed.sh: line 46: [: too many arguments ./tmed.sh: line 49: [: too many arguments ./tmed.sh: line 54: [: too many arguments ./tmed.sh: line 57: [: quelque: unary operator expected ./tmed.sh: line 62: [: too many arguments ./tmed.sh: line 65: [: quelque: unary operator expected ./tmed.sh: line 71: [: too many arguments ./tmed.sh: line 74: [: quelque: unary operator expected ./tmed.sh: line 80: [: too many arguments ./tmed.sh: line 83: [: quelque: unary operator expected ./tmed.sh: line 88: [: too many arguments ./tmed.sh: line 91: [: too many arguments ./tmed.sh: line 38: [: too many arguments ./tmed.sh: line 43: [: too many arguments ./tmed.sh: line 46: [: too many arguments ?????? |
A mon avis le problème est ailleurs et comme nous n'avons pas (encore) de don de voyance, difficile de voir d'où vient le problème ;-\
#! /bin/sh #set -xv echo "Entrez un nombre : " read nbre if [ "$nbre" = 1 ] then echo 1 elif [ "$nbre" = 2 ] then echo 2 elif [ "$nbre" = 3 ] then echo 3 fiet dis-moi si ça marche ou pas ? ;-)) $ man woman Il n'y a pas de page de manuel pour woman. |
Mon pote le problème est exactement dans les lignes du conditions
elif [ $p6 = "" ] il affiche comme erreur: ./tmed.sh: line 81: [: =: unary operator expected et pour cette type de ligne
if [ [ ${tab[$l]} = "--dport" ] && [ $p7 = ""] ]
il affiche comme erreur:
./tmed.sh: line 86: [: too many arguments
|

