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