Je suis nouveau à la programmation de script bash.
Je veux implémenter un script bash 'deploymLog', qui accepte en entrée un argument de chaîne (nom).
[root@localhost Desktop]# ./deploymLog.sh name
Ici, je veux passer l'argument de chaîne (nom) en ligne de commande.
Pour commencer, je dois ajouter l’horodatage actuel avec cette chaîne d’entrée dans un fichier journal, par exemple, Logone.txt
dans le répertoire actuel au format ci-dessous:
[name]=[System time timestamp1]
Comment c'est possible?
[[ -n "$name" ]]
partie.Les arguments de ligne de commande shell sont accessibles via
$1
(le premier),$n
(le nième) ou$*
(tous les arguments), votre script doit donc démarrer:Maintenant, l'argument de nom est accessible depuis le script en tant que
$name
.Pour obtenir l’horodatage, utilisez la
date(1)
commande et donnez-lui un spécificateur de format pour obtenir le format souhaité:$now
Contient maintenant la date et l'heure actuelles.Vous pouvez donc créer votre fichier journal de la manière suivante:
Il est préférable d’utiliser une fonction shell pour enregistrer vos messages, car il sera plus facile à utiliser:
Notez que les fonctions du shell accèdent à leurs propres arguments de la même manière que le script (via
$1
etc.)Donc, le script initial ressemble à ceci:
(notez que le fichier journal n’a pas le format exact que vous avez spécifié; il en est un meilleur avec l’horodatage au début de chaque ligne).
la source
lancez "bash deploymLog.sh peu importe", et vous obtenez x.log avec
la source
name=$1
. La variable $ name n'est jamais utilisée, car vous ne sortez que la chaîne 'name' littéralement.name="$1"