Executer un script

pinfada Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voila j'ai tapez ce code qui compare deux fichier :

function compare

{

diff $1 $2 | grep"^>" > f1diff
diff $1 $2 | grep"^<" > f2diff

wc -l f1diff > Stats
wc -l f2diff >> Stats

f1diff > Result
f2diff >> Result

}

compare $1 $2

echo " diff effectuer fichier stats & result créer"

mon probleme est le suivant je travail sur un vieille version de telnet vi , je tape sh compare.sh fichier1 fichier 2 pour lancer le script
on me retourne sh compare.sh not found je ne comprend pas
ya t'il un autre moyen moyen de lancer le script ??
A voir également:

5 réponses

pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   135
 
Tu es sûr d'être dans le bon répertoire lorsque tu tapes la commande ? Vérifie aussi que ton fichier soit exécutable, que le nom soit le bon (il faut respecter la casse).
1
dna.factory Messages postés 25974 Date d'inscription   Statut Modérateur Dernière intervention   1 618
 
si il est en executable, normalement t'a même pas besoin de taper sh
par contre, pour certains scripts (dans les mêmes conditions, vi/telnet) je dois lancer ./script.sh
au passage, lors du transfert d'un fichier, il perd son caractère executable

au passage, tu l'appelle fonction, mais au final, c'est juste un fichier vi

chui con...

tu parles de compare $1 $2

et plus bas de compare.sh $1 $2

essaye d'harmoniser ça déja
0
pinfada Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai appris que pour lancé un script il fallait rentrer sh comparer.sh fichier1 fichier2
j'ai tapé comparer $1 $2 pour qu'il lance la fonction compare peut etre que cette ligne ne sert a rien meme sans j'ai le meme resulta
0
pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   135
 
Ton script me semble correct, mais je ne pense pas que tu aies besoin de faire une fonction sachant que tu ne l'appelles qu'une fois... Fais plutôt un fichier que tu appelles comparer et qui contient ça :
#!/bin/sh
diff $1 $2 | grep"^>" > f1diff 
diff $1 $2 | grep"^<" > f2diff 

wc -l f1diff > Stats 
wc -l f2diff >> Stats 

f1diff > Result 
f2diff >> Result 

echo " diff effectuer fichier stats & result créer" 
Puis tu le rends exécutable avec
chmod u+x comparer
Enfin tu l'appelles en faisant
./comparer fic1 fic2
0
pinfada Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
je te remerci psychopathe avec chmod u+x compare çà MARCHE cependant dans l'execution on me retourne
f1diff cannot execute
f2diff cannot execute

ce la vient t'il du fait que je redirege ces fichier vers le fichiers Result ??
0
pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   135
 
Oui, il considère ça comme une commande. Si tu veux mettre le contenu de f1diff et f2diff dans Result, il faudrait plutôt faire :
cat f1diff > Result
cat f2diff >> Result
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pinfada Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
C'est Super ton aide m'est d'un grand secours merci
Juste une derniere question puis je t'embete plus

ya t-il un moyen d'affiche parallelement les ligne different de fic1 et fic2

lorsque je fait:
diff $1 $2 | grep "^>" >fdiff
diff $1 $2 | grep "^<" >>fdiff

par defaut il me l'affiche les donné les un en dessous des autres ce que rend difficile l'indentification des donné de fic1 et fic2

ce que je recherche c'est soit de marqué par un separateur ( espace ou un ligne )

toto toto
tata tata
titi titi
----
tito tito
tita tita
tota tota

ou bien

toto tito
tata tita
titi tota



dois-je avoir recours a la commande cut
0
pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   135
 
Là je ne peux pas t'aider, je ne maîtrise pas encore assez les commandes linux (malheureusement !).
0