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 $nowberisi 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 $1dll.)
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.