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)
$nowContient 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 $1etc.)
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.