Bonjour la "cantonnade" comme promis je poste la solution que j'ai trouvé :-) et si ça peut aider quelqu'un à jour...
Pour rappel mon soucis provenait du fait de la disparition d'un fichier qui est en paramètre de la commande ci-dessous :
stat -c %y $file| sed s/\\..*$//
Cette commande est sensée retourner l'heure de création du fichier. Mais encore une fois si le fichier a disparu la commande stat va se planter !
Phase 1 - J'isole le problème éventuel de la disparition du fichier.
stat -c %y $file2>/dev/null | sed s/\\..*$//
Phase 2 - Je traite le fait que cette commande peut ne rien renvoyer si le fichier a disparu. Dans ce cas-ci, j'aurai besoin qu'on me renvoie now.
Pour cela, j'utilise la commande ifne dont une implémentation shell pourrait être la suivante.
ifne (){read line &&echo${line:-$(eval"$@")}||eval"$@";}
Cette commande est programmée pour recevoir en entrée un flot :
* si ce flot n'est pas nul, elle l'affiche via un echo
* Si ce flot est nul ou s'il y a un problème en entrée elle évaluera l'ensemble des paramètres comme une seule instruction.
Dans mon contexte cela devient :
stat -c %y $file2>/dev/null | sed s/\\..*$// | ifne echo now
Maintenant l'insertion totale dans ma condition décrite précédemment :
...
IGNORE_TIME=1# Test qui va marcher à tous les coups même si $file est vide...[[$File=~ ^regexp_qui_valide_name_file$ ]]&&(($(diff_date now "$(stat -c %y $file2>/dev/null | sed s/\\..*$// | ifne echo now)" m) > $IGNORE_TIME))&&{
...
# Prise en charge du fichier
...
}
Et voili, voilà ça marche comme un charme. J'avoue ça donne un peu le torticolis :-)
Merci encore aux différentes participations même si c'est moi qui est trouvé la soluce ;-)
[^] # Re: changer la maniere de faire
Posté par piaff33z . En réponse au message J'ai une colle pour les experts shell ou système.. Évalué à 1.
Bonjour la "cantonnade" comme promis je poste la solution que j'ai trouvé :-) et si ça peut aider quelqu'un à jour...
Pour rappel mon soucis provenait du fait de la disparition d'un fichier qui est en paramètre de la commande ci-dessous :
Cette commande est sensée retourner l'heure de création du fichier. Mais encore une fois si le fichier a disparu la commande stat va se planter !
Cette commande est programmée pour recevoir en entrée un flot :
* si ce flot n'est pas nul, elle l'affiche via un echo
* Si ce flot est nul ou s'il y a un problème en entrée elle évaluera l'ensemble des paramètres comme une seule instruction.
Dans mon contexte cela devient :
Maintenant l'insertion totale dans ma condition décrite précédemment :
Et voili, voilà ça marche comme un charme. J'avoue ça donne un peu le torticolis :-)
Merci encore aux différentes participations même si c'est moi qui est trouvé la soluce ;-)