Jika ada "Masalah Dunia Pertama" untuk scripting, ini dia.
Saya memiliki kode berikut dalam skrip yang saya perbarui:
if [ $diffLines -eq 1 ]; then
dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g')
mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI
Last Change: $dateLastChanged
This is an automated warning of stale data for the UNC-G Blackboard Snapshot process.
EOI
else
echo "$diffLines have changed"
fi
Script mengirim email tanpa masalah, tetapi perintah mailx bersarang di dalam pernyataan if jadi saya tampaknya dibiarkan dengan dua pilihan:
- Letakkan
EOI
di baris baru dan pecahkan pola indentasi atau - Tetap dengan lekukan tetapi gunakan sesuatu seperti pernyataan gema untuk mendapatkan mailx untuk menyedot email saya.
Saya terbuka untuk alternatif selain heredoc, tetapi jika ada cara untuk menyiasatinya, ini adalah sintaks pilihan saya.
$dateLastChanged
) jika saya melakukan hal tanda kutip + kutipan dalam contoh Anda, tetapi jika saya mengambil tanda hubung dan mengutip dan meletakkan EOI pada baris baru itu mulai berkembang lagi.