Saya ingin membuat file log untuk skrip cron yang memiliki jam saat ini dalam nama file log. Ini adalah perintah yang saya coba gunakan:
0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log
Sayangnya saya mendapatkan pesan ini saat dijalankan:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
Saya telah mencoba keluar dari date
bagian dalam berbagai cara, tapi tanpa banyak keberuntungan. Apakah mungkin untuk mewujudkannya secara in-line dalam file crontab atau apakah saya perlu membuat skrip shell untuk melakukan ini?
Jawaban yang Diterima:
Jawaban singkat:
Keluar dari %
sebagai %
:
0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log
Jawaban panjang:
Pesan kesalahan menunjukkan bahwa shell yang menjalankan perintah Anda tidak melihat karakter centang kembali kedua:
/bin/sh: -c: line 0: unexpected EOF while looking for matching '`'
Ini juga dikonfirmasi oleh pesan kesalahan kedua yang Anda terima ketika Anda mencoba salah satu jawaban lain:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ')'
Halaman manual crontab mengonfirmasi bahwa perintah hanya dapat dibaca hingga %
pertama yang tidak di-escape tanda:
Bidang "keenam" (sisa baris) menentukan perintah untuk
dijalankan. Seluruh bagian perintah dari baris, hingga baris baru atau%
karakter, akan dieksekusi oleh/bin/sh
atau dengan shell yang ditentukan dalam
SHELL
variabel dari file cron. Persen-tanda (%
) di perintah, kecuali diloloskan dengan garis miring terbalik (), akan diubah menjadi karakter baris baru , dan semua data setelah
%
first pertama akan dikirim ke
perintah sebagai input standar.