Gli argomenti della riga di comando di Shell sono accessibili tramite $1
(il primo), $n
(l'ennesimo) o $*
(tutti gli argomenti), quindi lo script dovrebbe iniziare:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
Ora l'argomento name è accessibile dallo script come $name
.
Per ottenere il timestamp usa il date(1)
comando e assegnagli un identificatore di formato in modo che produca il formato desiderato:
now=$(date +%Y%m%d%H%M%S)
Ora $now
contiene la data e l'ora correnti.
Quindi puoi creare il tuo file di registro in questo modo:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
Stai meglio usando una funzione shell per registrare i tuoi messaggi in quanto sarà più facile da usare:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
Si noti che le funzioni della shell accedono ai propri argomenti allo stesso modo dello script (tramite $1
ecc.)
Quindi lo script iniziale è simile al seguente:
#!/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
(nota che il file di registro non è nel formato esatto specificato; è in uno migliore con il timestamp all'inizio di ogni riga).
[[ -n "$name" ]]
sta facendo la parte.