Montre améliorée: exécuter la commande à plusieurs reprises, montrant les différences de sortie

derobert

Montre améliorée: exécuter la commande à plusieurs reprises, montrant les différences de sortie


Il existe une commande de watch qui exécute un programme toutes les N secondes, vous montrant la sortie la plus récente et mettant éventuellement en surbrillance les caractères qui ont été modifiés.

J’utilise souvent son mode --diff pour voir ce qui a changé depuis le dernier intervalle de rafraîchissement, mais je dois ensuite faire un compromis: est-ce que je veux voir les données actuelles (utiliser un intervalle de rafraîchissement bas) ou avoir une bonne idée de la façon dont une grande partie de la sortie change (utilisez un long intervalle de rafraîchissement). Le mode cumulatif est cependant trop long. Et la sortie diff est inutile si une ligne est ajoutée / supprimée vers le haut, ce serait bien si cela ne mettait pas en évidence tout l’écran.

Exigences:

  1. Fonctionne sous Linux, de préférence dans un terminal (CLI)
  2. Exécute une commande toutes les N secondes (sans dérive temporelle est préférable, mais pas obligatoire), et affiche la sortie de cette commande.
  3. Lors des deuxième, troisième, etc. rafraîchissements, met en évidence les caractères qui ont changé. Me permet de spécifier le nombre de mises à jour de modifications que j’aimerais voir (par exemple, mettre en évidence les caractères qui ont changé au cours des trois dernières actualisations, pas seulement celui-ci)
  4. Soutenez raisonnablement UTF-8. Par exemple, comprenez qu’un caractère peut être composé de plusieurs octets.
  5. Gérer les lignes ajoutées et supprimées sans afficher chaque caractère de chaque ligne suivante comme modifié (par exemple, tenter de resynchroniser comme diff fait, bien que l’utilisation d’un algorithme différent soit très bien)

Nice-to-Haves:

  1. Montrez combien de rafraîchissements il y a eu le changement en utilisant une couleur de surbrillance différente en fonction de l’âge. OK pour exiger un terminal capable de 256 couleurs (par exemple, pour obtenir un tas de gris).
  2. Fonctionne dans un terminal, sans avoir besoin de X11 (ou Wayland).
  3. Comme mentionné ci-dessus, le mode pour éviter la dérive temporelle (par exemple, si vous demandez toutes les 30 secondes et que la commande prend 5 secondes pour s’exécuter, il devrait toujours le démarrer toutes les 30 secondes, pas toutes les 35 secondes). [option -p la montre, que j’ai écrite …]
  4. Prise en charge de la mise en forme des codes d’échappement du programme en cours d’exécution (par exemple, couleur, gras, souligné).
  5. Historique, où vous pouvez consulter les résultats précédents. Par exemple, en appuyant sur h ou sur la gauche, vous pouvez afficher le résultat de l’exécution précédente, en appuyant à nouveau sur l’analyse précédente, puis sur l ou vers la droite pour passer à l’analyse suivante et revenir à l’analyse la plus récente.
Steve Barnes

Votre plaisir d’en avoir 3 pourrait causer un problème si le processus est planifié toutes les 10 secondes mais prend 30.

derobert

@SteveBarnes correct. Je me fiche de ce qui se passe alors. Les comportements raisonnables incluent l’exécution de la commande à nouveau immédiatement, à plusieurs reprises jusqu’à ce qu’elle soit rattrapée par le nombre prévu d’exécutions ou en attendant la prochaine exécution planifiée (en sautant simplement les manquées).

Steve Barnes

Il y aurait également un problème avec le respect des codes d’échappement de mise en forme et la mise en évidence des modifications – par exemple, le mot erreur est rouge parce qu’il s’agit d’une modification ou parce qu’il est rouge, il en va de même pour la plupart des autres façons d’afficher les modifications.

derobert

@SteveBarnes yep, sans doute la mise en évidence des différences montrerait la priorité. Watch (ou celui amélioré) est quelque chose que vous utilisez sur des commandes « amicales », pas malveillantes. Il peut également arriver que quelqu’un change l’horloge, lui envoie un gigaoctet de sortie, tente de basculer le terminal en mode graphique ou tire le cordon d’alimentation hors du mur. Surtout, la réponse à ces possibilités est « eh bien, ne faites pas ça, alors! »

Réponses


 

#à, #de, #la, améliorée:, commande, différences, exécuter, Les, montrant, montre, plusieurs, reprises?, sortie

 

elle.fr

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *