Script à la C.. [ KSH - AIX ] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 29-11-2005 à 13:16:50
je ferais plus simple :
if [ -z $(find /home -ctime 1 -print -quit) ]
then
echo "not modified"
else
echo modified
fi
Marsh Posté le 29-11-2005 à 13:52:27
J'ai un souci quand je l'execute...
il me dit de spécifier un paramètre avec cette commande...
Par contre miniplus, le -z signifie : si le résultat n'est pas nul, non??
On joue alors avec la valeur de retour qui sera 0 ou 1 et non le mot /home??
Marsh Posté le 29-11-2005 à 13:55:52
oui, mais on fait le find que dans /home... donc, de toute maniere, si il ya des resultats, c'est que ca a été modifié
Marsh Posté le 29-11-2005 à 13:56:38
heaven35 a écrit : J'ai un souci quand je l'execute... |
là j'ai pas compris !
heaven35 a écrit : |
non -z teste si la chaine qu'on lui donne est vide ou pas. N'oubliez pas que ce qui se trouve entre $(...) est remplacé par ce qu'affiche la comande, on ne s'occupe donc pas du code retour de find...
Marsh Posté le 29-11-2005 à 14:02:27
ok pour le -z, je comprends mieux!!!
Pour ce qui est de l'execution de mon script, j'ai le message suivant :
find : 0652-017 -quit est une option incorrecte.
test.sh[6]: test: 0403-004 Spécifiez un paramètre avec cette commande.
Marsh Posté le 29-11-2005 à 14:02:48
[quotemsg=757123,6,33451N'oubliez pas que ce qui se trouve entre $(...) est remplacé par ce qu'affiche la comande, on ne s'occupe donc pas du code retour de find...[/quotemsg]
D'ailleurs ca marche aussi avec: if [ -z `commande` ]...
Marsh Posté le 29-11-2005 à 14:08:51
heaven35 a écrit : ok pour le -z, je comprends mieux!!! |
ben tu peux le virer mais ça va prendre plus de temps...
regarde dans le man find si y'a pas un équivalent, j'ai pas de AIX sous la main...
Marsh Posté le 29-11-2005 à 14:15:23
Bon bah j'ai testé tout cela sur un répertoire qui n'a pas été modifié depuis plus d'1 an...
Et mon script me dit que le répertoire a été modifié...
if [ -z 'find /testalb -ctime 1 -print' ]
then
echo " rien n'a été modifié"
else
echo " le repertoire a été modifié "
fi
exit 0
Marsh Posté le 29-11-2005 à 14:19:46
heaven35 a écrit : Bon bah j'ai testé tout cela sur un répertoire qui n'a pas été modifié depuis plus d'1 an... |
heu non, pas des guillements, met la commande entre $(...)
(notez que c'est en partie pour ça que j'aime pas la notation backticks... )
Marsh Posté le 29-11-2005 à 15:23:24
bon je n'arrive pas à faire fonctionner mon script...
En plus je viens de m'appercevoir que ce que je cherche à faire n'est pas bon... ggggrrrrrrrrr find et l'argument -ctime ça joue sur la modification sur 24h... et ce n'est pas ce que je veux...je craque..2 jours dessus..
Quelqu'un aurait une idée ( script ou commande ) pour savoir si un répertoire a été modifié dans l'heure ou depuis la dernière modif???
Marsh Posté le 29-11-2005 à 12:26:02
Bonjour,
Je vous explique le script que je veux écrire.
Je veux faire une recherche ( #find ) sur /home afin de savoir si ce répertoire a été modifié depuis 24H.
J'envoie le résultat de cette recherche dans une fichier ( file ).
Le contenu de mon fichier file resemble à :
/home
/home/test/
/home/test/.profile
Je regarde dans ce fichier si le mot /home est présent. ( avec une commande que minusplus m'avait fourni dans un autre sujet, merci à lui... )
Si /home existe alors
j'affiche "le répertoire a été modifié"
autrement " Rien n'a été modifié"
Voici ce que j'ai écrit :
##################################"
find /home -ctime 1 -print > file
if [ MOT=$(perl -w -p -e '/(/hom\S+)/ and $_=$1;' file) ]
then
if [ "$MOT" = "/home" ]
then
echo " le repertoire a été modifié "
else
echo " rien n'a été modifié "
fi
fi
exit 0
#########################
Par contre ce script ne fonctionne pas car dans mon 1er if, le mot en rouge /hom est mal interprêté...
Et je ne suis pas sur que mon 2ieme if soit correct.
Mais peut être que je m'y prends mal aussi pour chercher /home dans mon file....
quelqu'un pour m'aider??
Merci