Argumen baris perintah Shell dapat diakses melalui $1
(pertama), $n
(ke-n), atau $*
(semua argumen), jadi skrip Anda harus dimulai:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
Sekarang argumen nama dapat diakses dari skrip sebagai $name
.
Untuk mendapatkan cap waktu gunakan date(1)
perintah dan berikan penentu format sehingga menghasilkan format yang Anda inginkan:
now=$(date +%Y%m%d%H%M%S)
Sekarang $now
berisi tanggal dan waktu saat ini.
Jadi Anda dapat membuat file log Anda dengan demikian:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
Anda lebih baik menggunakan fungsi shell untuk mencatat pesan Anda karena akan lebih mudah digunakan:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
Perhatikan bahwa fungsi shell mengakses argumen mereka sendiri dengan cara yang sama seperti skrip (via $1
dll.)
Jadi skrip awal terlihat seperti ini:
#!/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
(perhatikan file log tidak dalam format persis yang Anda tentukan; itu dalam format yang lebih baik dengan stempel waktu di awal setiap baris).
[[ -n "$name" ]]
bagian apa yang sedang dilakukan.