Forum Programmation.shell Script Shell : Logs, echo, pas à pas

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
3
4
fév.
2025

Bonjour à tous,

Je suis entrain de terminer un petit projet maison en script shell.

Avec au début du fichier #!/bin/bash.

Plusieurs questions me viennent à l'esprit.

-Comment peut-on des logs facilement ? avec une fonction ?

-Je débogue avec des echo $variable , est-ce qu'il est possible de les executer seulement dans un mode particulier ?

-J'aimerais bien ne pas les supprimer si je souhaite revenir dessus plus tard.

-Est-il possible de faire de l'execution pas-à-pas en executant un script shell ?

Merci pour vos précieux conseils.

Bonne soirée.

  • # Quelques réponses

    Posté par  (Mastodon) . Évalué à 5 (+2/-0). Dernière modification le 04 février 2025 à 19:06.

    Déjà pour te faciliter la vie, tu peux mettre un beau set -x en début de ton script, et il t'affichera chaque commande exécutée.

    Après tu peux sélectionner des zones et mettre ton set -x à certains endroits, suivi d'un set +x pour le désactiver un peu plus loin.

    Ensuite oui tu peux te créer ta fonction de log, y compris avec plusieurs niveaux style DEBUG/INFO/WARNING/ERROR. Cherche un peu tu trouveras plein d'exemples.

    Pour exécuter pas à pas je ne pense pas que ce soit possible.

    EDIT : Ah si, c'est possible !

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Logger

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    Pour enregistrer des messages dans un fichier journal système (/var/log/messages par example), la commande la plus appropriée est logger :

    https://linux.die.net/man/1/logger

  • # comme tu veux ?

    Posté par  . Évalué à 3 (+0/-0).

    -Comment peut-on des logs facilement ? avec une fonction ?

    à toi de voir, tu peux faire une fonction qui prend les messages et les formates pour les envoyer qqpart

    puis tu l'appelles dans ton code mondebug('mon message')

    -Je débogue avec des echo $variable , est-ce qu'il est possible de les executer seulement dans un mode particulier ?

    classique si condition alors action

    ex : si DEBUGVARIABLE=ON alors mondebug('mon message que je passes à la fonctione')

    -J'aimerais bien ne pas les supprimer si je souhaite revenir dessus plus tard.

    si tu conditionnes leur usage avec une variable dans la config ou via la ligne de commande, tu peux laisser tous tes debugs dans le code, c'est meme recommandé

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.