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:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
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=$(date +%Y%m%d%H%M%S)
$now
Contient maintenant la date et l'heure actuelles.
Vous pouvez donc créer votre fichier journal de la manière suivante:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
Il est préférable d’utiliser une fonction shell pour enregistrer vos messages, car il sera plus facile à utiliser:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
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:
#!/bin/bash
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
now=$(date +%Y%m%d%H%M%S)
logfile=/path/to/log/file/mylogfile.$now
logit name = $name
(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).
[[ -n "$name" ]]
partie.