Recupérer des valeurs

Résolu
MuTe -  
 MuTe -
Bonjour,

Voilà je récupère le nom des répertoires qui se trouvent dans un fichier, et je fais un test pour voir si il a été modifié y a moins de 1jour, si c'est le cas j'écris valide sinon non-valide.

Seulment quand je tape ceci dans le terminal il me fait strictement rien ... du genre

mute@mute-laptop:~/Documents$ ./test
mute@mute-laptop:~/Documents$

Voici mon code ... merci beacoup

#!/bin/bash

i=1

max=$(grep -c '' lstrep)

while [ $i -ge $max ]
do
$i = $i+1
rep=$(cut -d ';' -f$i lstrep)

if [ find $rep -mtime 1 ]; then
echo $rep "valide"

else echo "non-valide"

fi

done
Configuration: Linux
Firefox 2.0.0.13

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    if [ $(find -name $rep -type d -mtime 1) ]; then 
    ;-))
    0
    1. MuTe
       
      merci de ta réponse mais en faite ça cale encore, mais c'est un problème dans mon code.

      Il ne rentre pas dans la boucle while et dans le terminal il me met ceci mnt :
      ./test: line 10: 2: No such file or directory

      une idée...
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Change ton code comme suit :
    #!/bin/bash
    
    IFS=";"
    
    for rep in $(cat lstrep)
    
    do
    
    if [ find $rep -mtime 1 ]; then
    echo $rep "valide"
    
    else echo "non-valide"
    
    fi
    
    done
    ;-))
    0
    1. MuTe
       
      merci ça marche bien, mais il me met ./test: line 18: [: too many arguments

      puis si c'est valide ou pas ...

      et j'ai encore un autre problème, -mtime 1 signifie bien les fichiers qui ont été modifiés y a un jour

      si c'est le cas parmi les fichiers que je teste y en a un qui j'ai modifié juste à l'instant pour tester et
      il me emt quand même non-valide :(

      Merci encore ...
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > MuTe
         
        Oups pardon, j'ai copié/collé ton 1er script sans y apporter les corrections nécessaires, remplace la ligne "if ..." par :
        if [ $(find -name $rep -type d -mtime 1) ]; then 
        ;-)
        0
  3. MuTe
     
    arf ... il ne met pas encore le doc que j'ai modifié à valide :(

    et il me met un warning pour le find il n'aime pas les '/' ... je sais que je peux recupérer le nom d'un fichier avec un cut mais si j'ai des chemins qui changent

    par exmple comme ceci /home/mute/Documents/test.odt;/home/mute/Documents/exerice/test3.odt

    comment je peux récupérer le text juste après '/' et avant ';'.

    ou alors pouvoir vérifier si un doc avec tout son chemin d'accès ( /home/mute/Documents/test.odt;)
    à été modifié ou pas .... (autre que le find juste pour faire la vérirication de la dernière modification)

    J'espère que je suis comprhéensible ^^

    Merci encore et encore :d
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    $ echo $var
    /home/mute/Documents/test.odt
    $ basename $var
    test.odt
    $ dirname $var
    /home/mute/Documents
    $</code>;-)
    0
    1. MuTe
       
      Génial ,merci encore mais .... lol

      voilà mon code y a un truc que je pige pas :

      if [ $(find -name $file -mtime 1) ]; then 
      echo $rep "valide"
      
      else echo $rep "non-valide"
      
      fi
      


      ça veut bien dire si il trouve le nom du fichier et que il a été modifié y a moins d'un jour qu'il mette
      valide sinon invalide ??

      par exemple je viens encore de modifier mon fichier pour faire le test et il se met tjrs invalide
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > MuTe
       
      -mtime -1
      ;-))
      0
    3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      t'as oublié la balise de début <code> dans message 7
      0
    4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
       
      Oups ;-((

      Mais je peux plus rectifier, tant pis c'est quand même lisible.

      Merci l'ami ;-))
      0
    5. MuTe > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      ouais c'est vrai que ça semble plus logique mais ça ne me met tjrs pas valide (jai meme mis pour 1an)

      for rep in $(cat lstrep)
      
      do
      file=$(basename $rep)
      
      if [ $(find -name $file -mtime -355) ]; then 
      echo $rep "valide"
      
      else echo $rep "non-valide"
      
      fi
      
      done
      
      0