Executer un script

pinfada Messages postés 13 Statut Membre -  
pyschopathe Messages postés 2053 Statut Membre -
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. pyschopathe Messages postés 2053 Statut Membre 137
     
    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
  2. dna.factory Messages postés 19911 Date d'inscription   Statut Modérateur Dernière intervention   1 621
     
    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
  3. pinfada Messages postés 13 Statut Membre
     
    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
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      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
  4. pinfada Messages postés 13 Statut Membre
     
    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
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pinfada Messages postés 13 Statut Membre
     
    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
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Là je ne peux pas t'aider, je ne maîtrise pas encore assez les commandes linux (malheureusement !).
      0