Argumentos da linha de comando do shell são acessíveis por meio de $1
(o primeiro), $n
(enésimo) ou $*
(todos os argumentos), portanto, seu script deve começar:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
Agora, o argumento do nome pode ser acessado no script como $name
.
Para obter o registro de data e hora, use o comando date(1)
e forneça um especificador de formato para que ele produza o formato desejado:
now=$(date +%Y%m%d%H%M%S)
Agora, $now
contém a data e a hora atuais.
Então você pode criar seu arquivo de log assim:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
É melhor usar uma função shell para registrar suas mensagens, pois será mais fácil de usar:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
Note que as funções do shell acessam seus próprios argumentos da mesma maneira que o script (via $1
etc.)
O script inicial é assim:
#!/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
(note que o arquivo de log não está no formato exato que você especificou; ele está em um melhor com o timestamp no início de cada linha).