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

4 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
if [ $(find -name $rep -type d -mtime 1) ]; then 
;-))
0
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > 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
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
$ echo $var
/home/mute/Documents/test.odt
$ basename $var
test.odt
$ dirname $var
/home/mute/Documents
$</code>;-)
0
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > MuTe
 
-mtime -1
;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

t'as oublié la balise de début <code> dans message 7
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > lami20j Messages postés 21331 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
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