Executer un script

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 ??
Configuration: Windows 2000 Internet Explorer 6.0

5 réponses

  1. 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. Modérateur
      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
      1. 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
        1. 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
      2. 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 ??
        1. 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
      3. 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
        1. Là je ne peux pas t'aider, je ne maîtrise pas encore assez les commandes linux (malheureusement !).