J'ai ce code Bash:
(au début du script :) p> (et, à la fin du script :) P > rule1: dep1 dep2 dep3
...SOME STUFF
@$(call TIME, starttime)
rule2: depx depD rule1
...SOME STUFF
@$(call TIME, starttime)
3 Réponses :
Le problème est que dans votre script Bash, la variable Vous pouvez corder toutes les commandes d'une recette ensemble en une seule ligne. que vous pouvez définir EDIT: B> t code> survit depuis le début (avant le travail) à la fin (lorsqu'il peut être soustrait de l'heure de fin). Dans une recette de fabrication, chaque ligne a sa propre coquille, une variable de coque définie dans une ligne précoce ne sera pas disponible dans une ligne ultérieure.
t code> au début et l'utiliser à la fin, mais c'est assez maladroit. Je vous suggère d'écrire
t code> à un fichier, peut-être
règle1_time code>, de sorte que les deux appels sur
minuterie code> ne nécessitent pas de variable commune. Oh, et n'essayez pas d'utiliser
appel code> à l'intérieur d'une commande: p>
J'ai écrit le code ci-dessus comme une preuve de concept; J'allais de la clarté, pas de raffinement. Si je comprends votre commentaire correctement, vous voulez maintenant savoir comment décomposer le temps en heures, minutes et secondes, sans appeler plusieurs fonctions de chaque règle. Il y a plusieurs façons de le faire, c'est probablement le plus propre: p>
Merci. J'ai fait ta solution mais j'espérais faire quelque chose comme une fonction, plus automatisé. Maintenant, j'ai une fonction (STIME, DTNE, DT, DH, ...) par opération mathématique nécessaire pour les informations finales.
Le calcul H: M: S n'est pas correct car il n'y a pas de moyen simple d'afficher écoulé i> temps en utilisant date code>. Les fuseaux horaires et les secondes sautent de la sortie. Il est généralement nécessaire de faire un ensemble de division successif de 60. Sinon, une réponse fantastique. (Commentaire sur un très vieux post, je sais.)
En outre, date -r
toucher $ @ _ heure < / code> et ensuite faire
date -r $ @ _ time +% s code> pour le récupérer.
Si vous essayez d'obtenir des informations de synchronisation pour les étapes de votre construction, une meilleure solution consiste à utiliser une marque plus intelligente. Electricmake à partir du cloud électrique peut générer une version xml-balad-up du journal de construction , appelé un fichier annotation em>, qui inclut les données de synchronisation exactes pour chaque commande invoquée par la construction, ainsi qu'une charge de banque d'autres informations telles que les lignes de commande exactes utilisées (même si vous avez utilisé le Vous pouvez l'essayer gratuitement avec Sparkbuild , une version gratuite de Electricmake. P> @ code> préfixe) et les variables d'environnement utilisés par chaque commande. P>
Merci mais que je veux faire, c'est une partie d'une application et que les informations de synchronisation doivent être affichées sur chaque exécution. Nos clients veulent aussi voir cette information.
Vous pouvez utiliser le temps:
all: @@time( \ rsync -az ${src1} ${dest1} \ && rsync -az ${src2} ${dest2} \ ## etc. )