Shell prog
Résolu
ichigo
-
azertybou Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
azertybou Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
salut,
dans le but de comparer 3 chaine j'ai fais comme ca
---------------------
#!/bin/bash
echo "entrer la premiere chaine "
read ch1
echo " enter la deuxieme chaine "
read ch2
echo "enter la 3eme chaine "
read ch3
#ch1=$1
#ch2=$2
#ch3=$3
if \( $ch1 eq $ch2 -a $ch2 eq $ch3 \)
then
echo " les 3 chaine son egaux "
elif \( $ch1 eq $ch2 -a $ch2 -ne $ch3 \)
then
echo " les deux premier chaines sont egaux "
elif \( $ch1 -ne $ch2 -a $ch2 -eq $ch3 \)
then
echo " les deux derniere chaines chaine sont egaux "
elif \( $ch1 -ep $ch3 -a $ch2 -eq $ch3 \)
then
echo " la premiere chaine et la 3eme sont egaux"
else
echo " tout les chaines sont diferente 2 à 2"
fi-------------------------------------------
mais ca n'a pas marcher
qu'il qu'un peut m'aider ?
dans le but de comparer 3 chaine j'ai fais comme ca
---------------------
#!/bin/bash
echo "entrer la premiere chaine "
read ch1
echo " enter la deuxieme chaine "
read ch2
echo "enter la 3eme chaine "
read ch3
#ch1=$1
#ch2=$2
#ch3=$3
if \( $ch1 eq $ch2 -a $ch2 eq $ch3 \)
then
echo " les 3 chaine son egaux "
elif \( $ch1 eq $ch2 -a $ch2 -ne $ch3 \)
then
echo " les deux premier chaines sont egaux "
elif \( $ch1 -ne $ch2 -a $ch2 -eq $ch3 \)
then
echo " les deux derniere chaines chaine sont egaux "
elif \( $ch1 -ep $ch3 -a $ch2 -eq $ch3 \)
then
echo " la premiere chaine et la 3eme sont egaux"
else
echo " tout les chaines sont diferente 2 à 2"
fi-------------------------------------------
mais ca n'a pas marcher
qu'il qu'un peut m'aider ?
A voir également:
- Shell prog
- Classic shell - Télécharger - Personnalisation
- Robot prog - Télécharger - Édition & Programmation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Shell startup windows 10 - Guide
- Shell infrastructure host c'est quoi - Guide
12 réponses
Salut,
Quelques erreurs dans ton script, notamment pour la commande test ([...]) ou au niveau des comparateurs de chaînes (==).
Quelques erreurs dans ton script, notamment pour la commande test ([...]) ou au niveau des comparateurs de chaînes (==).
#!/bin/bash echo "Entrer la premiere chaine" read ch1 echo "Enter la deuxieme chaine" read ch2 echo "Enter la troisieme chaine" read ch3 if [ "$ch1" == "$ch2" -a "$ch1" == "$ch3" ] then echo "Les 3 chaînes sont identiques" elif [ "$ch1" == "$ch2" ] then echo "Les chaînes 1 et 2 sont identiques" elif [ "$ch1" == "$ch3" ] then echo "Les chaînes 1 et 3 sont identiques" elif [ "$ch2" == "$ch3" ] then echo "Les chaînes 2 et 3 sont identiques" else echo "Les 3 chaînes sont différentes" fihttps://guidespratiques.traduc.org/guides/vf/Bash-Beginners-Guide/Bash-Beginners-Guide.html
---------------------------------------------------------------
Entrer la premiere chaine
qq
Enter la deuxieme chaine
aa
Enter la troisieme chaine
qq
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
Les 3 chaînes sont différentes
-----------------------------------------------------------------
ca n'a pas marché aussi
Entrer la premiere chaine
Enter la deuxieme chaine
aa
Enter la troisieme chaine
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
[: 28: ==: unexpected operator
Les 3 chaînes sont différentes
-----------------------------------------------------------------
ca n'a pas marché aussi
Quel shell ?
Quel système ?
Quelle distribution ?
Au cas ou j'aurai fait une erreur lorsque j'ai posté mon message précédent, j'ai recopié le script en le nommant "bar.sh" :
Quel système ?
Quelle distribution ?
Au cas ou j'aurai fait une erreur lorsque j'ai posté mon message précédent, j'ai recopié le script en le nommant "bar.sh" :
[tmpfs]$ cat bar.sh #!/bin/bash echo "Entrer la premiere chaine" read ch1 echo "Enter la deuxieme chaine" read ch2 echo "Enter la troisieme chaine" read ch3 if [ "$ch1" == "$ch2" -a "$ch1" == "$ch3" ] then echo "Les 3 chaînes sont identiques" elif [ "$ch1" == "$ch2" ] then echo "Les chaînes 1 et 2 sont identiques" elif [ "$ch1" == "$ch3" ] then echo "Les chaînes 1 et 3 sont identiques" elif [ "$ch2" == "$ch3" ] then echo "Les chaînes 2 et 3 sont identiques" else echo "Les 3 chaînes sont différentes" fi [tmpfs]$ ./bar.sh Entrer la premiere chaine qq Enter la deuxieme chaine aa Enter la troisieme chaine qq Les chaînes 1 et 3 sont identiques [tmpfs]$ ./bar.sh Entrer la premiere chaine aa Enter la deuxieme chaine aa Enter la troisieme chaine aa Les 3 chaînes sont identiques [tmpfs]$ ./bar.sh Entrer la premiere chaine aa Enter la deuxieme chaine qq Enter la troisieme chaine qq Les chaînes 2 et 3 sont identiques [tmpfs]$ ./bar.sh Entrer la premiere chaine aa Enter la deuxieme chaine qq Enter la troisieme chaine ww Les 3 chaînes sont différentes [tmpfs]$;-))
re,
je confirme
a+
je confirme
./teste1 Entrer la premiere chaine aa Enter la deuxieme chaine dd Enter la troisieme chaine aa Les chaînes 1 et 3 sont identiques
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re
de rien lol
a+
ps: vu que je suppose que comme moi la plus part du temps tu testes ce que tu reponds !!!
ça ne pouvait que fonctionner vu les indications fournis
de rien lol
a+
ps: vu que je suppose que comme moi la plus part du temps tu testes ce que tu reponds !!!
ça ne pouvait que fonctionner vu les indications fournis
quand j'execute avec ./nomfichier j'ai le resultats correcte et quand je fais sh nomfichier
j'ai des erreurs
root@mounaim-desktop:/home/mounaim# ./td5ex1.sh
Entrer la premiere chaine
mm
Enter la deuxieme chaine
aa
Enter la troisieme chaine
aa
Les chaînes 2 et 3 sont identiques
root@mounaim-desktop:/home/mounaim# sh td5ex1.sh
Entrer la premiere chaine
mm
Enter la deuxieme chaine
aa
Enter la troisieme chaine
aa
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
Les 3 chaînes sont différentes
root@mounaim-desktop:/home/mounaim#
j'ai des erreurs
root@mounaim-desktop:/home/mounaim# ./td5ex1.sh
Entrer la premiere chaine
mm
Enter la deuxieme chaine
aa
Enter la troisieme chaine
aa
Les chaînes 2 et 3 sont identiques
root@mounaim-desktop:/home/mounaim# sh td5ex1.sh
Entrer la premiere chaine
mm
Enter la deuxieme chaine
aa
Enter la troisieme chaine
aa
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
Les 3 chaînes sont différentes
root@mounaim-desktop:/home/mounaim#
re
bizarre ton truc car
au fait c'est pas la peine d'ajouter .sh
a+
bizarre ton truc car
sh teste1 Entrer la premiere chaine aa Enter la deuxieme chaine dd Enter la troisieme chaine mm Les 3 chaînes sont différentes
au fait c'est pas la peine d'ajouter .sh
a+
root@mounaim-desktop:/home/mounaim# ls -l /bin/*sh
-rwxr-xr-x 1 root root 702160 2008-05-12 18:33 /bin/bash
-rwxr-xr-x 1 root root 79988 2008-03-12 11:22 /bin/dash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/rbash -> bash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/sh -> dash
root@mounaim-desktop:/home/mounaim#
-rwxr-xr-x 1 root root 702160 2008-05-12 18:33 /bin/bash
-rwxr-xr-x 1 root root 79988 2008-03-12 11:22 /bin/dash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/rbash -> bash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/sh -> dash
root@mounaim-desktop:/home/mounaim#
root@mounaim-desktop:/home/mounaim# ls -l /bin/*sh
-rwxr-xr-x 1 root root 702160 2008-05-12 18:33 /bin/bash
-rwxr-xr-x 1 root root 79988 2008-03-12 11:22 /bin/dash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/rbash -> bash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/sh -> dash
root@mounaim-desktop:/home/mounaim# cat td5ex1.sh
#!/bin/bash
echo "Entrer la premiere chaine"
read ch1
echo "Enter la deuxieme chaine"
read ch2
echo "Enter la troisieme chaine"
read ch3
if [ "$ch1" == "$ch2" -a "$ch1" == "$ch3" ]
then echo "Les 3 chaînes sont identiques"
elif [ "$ch1" == "$ch2" ]
then echo "Les chaînes 1 et 2 sont identiques"
elif [ "$ch1" == "$ch3" ]
then echo "Les chaînes 1 et 3 sont identiques"
elif [ "$ch2" == "$ch3" ]
then echo "Les chaînes 2 et 3 sont identiques"
else echo "Les 3 chaînes sont différentes"
fi
root@mounaim-desktop:/home/mounaim# sh td5ex1.sh
Entrer la premiere chaine
aa
Enter la deuxieme chaine
ss
Enter la troisieme chaine
aa
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
Les 3 chaînes sont différentes
root@mounaim-desktop:/home/mounaim#
-rwxr-xr-x 1 root root 702160 2008-05-12 18:33 /bin/bash
-rwxr-xr-x 1 root root 79988 2008-03-12 11:22 /bin/dash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/rbash -> bash
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/sh -> dash
root@mounaim-desktop:/home/mounaim# cat td5ex1.sh
#!/bin/bash
echo "Entrer la premiere chaine"
read ch1
echo "Enter la deuxieme chaine"
read ch2
echo "Enter la troisieme chaine"
read ch3
if [ "$ch1" == "$ch2" -a "$ch1" == "$ch3" ]
then echo "Les 3 chaînes sont identiques"
elif [ "$ch1" == "$ch2" ]
then echo "Les chaînes 1 et 2 sont identiques"
elif [ "$ch1" == "$ch3" ]
then echo "Les chaînes 1 et 3 sont identiques"
elif [ "$ch2" == "$ch3" ]
then echo "Les chaînes 2 et 3 sont identiques"
else echo "Les 3 chaînes sont différentes"
fi
root@mounaim-desktop:/home/mounaim# sh td5ex1.sh
Entrer la premiere chaine
aa
Enter la deuxieme chaine
ss
Enter la troisieme chaine
aa
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
[: 19: ==: unexpected operator
Les 3 chaînes sont différentes
root@mounaim-desktop:/home/mounaim#
lrwxrwxrwx 1 root root 4 2008-10-26 09:05 /bin/sh -> dash
Voila le problème ;-((
C'est pas le shell sh au sens strict (ni un lien symbolique vers /bin/bash comme dans beaucoup de distrib (Mandriva par exemple)), mais un dérivé du shell ash(voir https://fr.wikipedia.org/wiki/Debian_almquist_shell
Voila le problème ;-((
C'est pas le shell sh au sens strict (ni un lien symbolique vers /bin/bash comme dans beaucoup de distrib (Mandriva par exemple)), mais un dérivé du shell ash(voir https://fr.wikipedia.org/wiki/Debian_almquist_shell