Rechercher : dans
Par :

Shell prog

Dernière réponse le 2 nov 2008 à 21:54:14 ichigo, le 2 nov 2008 à 13:24:10 
 Signaler ce message aux modérateurs

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 ?

Configuration: Linux
Firefox 3.0

Meilleures réponses pour « shell prog » dans :
Désactiver l'exécution de certains programmes au démarrage VoirDésactiver l'exécution de certains programmes au démarrage - Windows 98/Me/2000/XP/Vista Avec msconfig Avec WinPatrol Avec Startuplite Avec CCleaner Remarques Lorsque vous installez des logiciels, certains s'exécutent à chaque...
Supprimer complètement un programme VoirMalgré la désinstallation d'un programme, il se peut que des clés de registre ou des fichiers soient encore présents sur le PC. Si la méthode "classique" (clic droit/supprimer) ne fonctionne pas, il suffit d'utiliser l'éditeur du registre. Mise en...
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...
Télécharger ProgDVB VoirLa diffusion de programme en numérique est de plus en plus en vogue depuis l'apparition de la connexion haut-débit. ProgDVB est un programme destiné à regarder des chaînes TV et à écouter des stations radio sur votre ordinateur. Il supporte le DVB-S...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Enterprise Resource Planning (ERP) - Progiciel de Gestion Intégr VoirIntroduction aux ERP Les ERP (en anglais Enterprise Resource Planning), aussi appelés Progiciels de Gestion Intégrés (PGI), sont des applications dont le but est de coordonner l'ensemble des activités d'une entreprise (activités dites verticales...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...

1

jipicy, le 2 nov 2008 à 13:41:57

Salut,

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"
fi
http://www.traduc.org/docs/guides/vf/Bash-Beginners-Guide/Bash-Beginners-Guide.html
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

ichigo, le 2 nov 2008 à 13:52:33

------------------------------------------------------------­---
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

Répondre à ichigo

3

jipicy, le 2 nov 2008 à 15:08:42

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" :

[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]$  
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

jeanbi, le 2 nov 2008 à 15:14:47

Re,
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+
FC 9 - Mandriva 2008.1 -Debian 4.0-
Les meilleures choses ont besoin de patience.(JC ANGLADE)

Répondre à jeanbi

5

jipicy, le 2 nov 2008 à 15:16:15

Merci ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

6

jeanbi, le 2 nov 2008 à 15:37:35

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 FC 9 - Mandriva 2008.1 -Debian 4.0-
Les meilleures choses ont besoin de patience.(JC ANGLADE)

Répondre à jeanbi

7

ichigo, le 2 nov 2008 à 17:52:26

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#

Répondre à ichigo

9

jipicy, le 2 nov 2008 à 17:56:32

Affiche la sortie de :

ls -l /bin/*sh
Merci.
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

8

jeanbi, le 2 nov 2008 à 17:54:39

Re
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+

FC 9 - Mandriva 2008.1 -Debian 4.0-
Les meilleures choses ont besoin de patience.(JC ANGLADE)

Répondre à jeanbi

10

ichigo, le 2 nov 2008 à 17:59:24

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#

Répondre à ichigo

11

ichigo, le 2 nov 2008 à 18:02:39

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#

Répondre à ichigo

12

jipicy, le 2 nov 2008 à 18:05:24

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 http://fr.wikipedia.org/wiki/Debian_almquist_shell)
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

13

ichigo, le 2 nov 2008 à 18:11:20

Meci pour votre aides et vos explications

Répondre à ichigo

14

jipicy, le 2 nov 2008 à 18:12:23

Remplace tous les "==" par "=" et ça devrait aller mieux ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

15

 azertybou, le 2 nov 2008 à 21:54:14

Moi j'ai exucte cette programme danc
il ya quelque chose dans system

Répondre à azertybou