หากมี "ปัญหาโลกครั้งแรก" สำหรับการเขียนสคริปต์นี่จะเป็นเช่นนั้น
ฉันมีรหัสต่อไปนี้ในสคริปต์ที่ฉันอัปเดต:
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
สคริปต์ส่งอีเมลโดยไม่มีปัญหา แต่คำสั่ง mailx ซ้อนอยู่ในคำสั่ง if ดังนั้นฉันดูเหมือนจะเหลือสองตัวเลือก:
- ใส่
EOI
บรรทัดใหม่และแบ่งรูปแบบการเยื้องหรือ - ใช้การเยื้อง แต่ใช้บางอย่างเช่นคำสั่ง echo เพื่อรับ mailx เพื่อดูดอีเมลของฉัน
ฉันเปิดให้ทางเลือกในการ heredoc แต่ถ้ามีวิธีที่จะได้รับรอบนี้มันเป็นไวยากรณ์ที่ฉันต้องการ
$dateLastChanged
) ถ้าฉันทำไฮเปอร์ + เครื่องหมายคำพูดในตัวอย่างของคุณ, แต่ถ้าฉันใส่เครื่องหมายยัติภังค์และอัญประกาศแล้วใส่ EOI บรรทัดใหม่มันเริ่มขยายอีกครั้ง