ฉันกำลังมองหาผลลัพธ์ของการดำเนินการเชลล์สคริปต์แบบเรียลไทม์เพื่อเพิ่มความสมบูรณ์ด้วยข้อมูลที่ให้วันที่และเวลา
เพื่ออธิบาย ฉันมีตัวอย่างสคริปต์ประเภทนี้ที่ฉัน ต้องไม่แก้ไข:
#!/bin/bash
สำหรับฉันใน 2 3 1
ทำ
echo "กำลังรอ $i วินาที..."
นอน $i
เสร็จแล้ว
สคริปต์สร้างผลลัพธ์ต่อไปนี้:
รอ 2 วินาที ...
รอ 3 วินาที ...
รอ 1 วินาที ...
ฉันพยายามสร้างผลลัพธ์ประเภท:
2021-06-16 11:44:48 [INFO] รอ 2 วินาที ...
2021-06-16 11:44:50 [INFO] รอ 3 วินาที ...
2021-06-16 11:44:53 [INFO] รอ 1 วินาที ...
ฉันใช้ฟังก์ชันเชลล์ต่อไปนี้เพื่อจัดรูปแบบในสคริปต์ที่เรียกใช้สคริปต์เริ่มต้นของฉัน:
บันทึกการทำงาน {
echo `วันที่ +%Y-%m-%d" "%H:%M:%S`" $@"
ถ้า [ "$LOGFILE" !=" "" ]
แล้ว
echo `วันที่ +%Y-%m-%d" "%H:%M:%S`" $@" >>$LOGFILE
ไฟ
}
เข้าสู่ระบบฟังก์ชั่นf {
บันทึก "[INFO] $@"
}
ฉันจัดการได้ดีมากด้วยการวนลูปขณะอ่านเพื่อจับผลลัพธ์ของสคริปต์ของฉัน แต่ฉันได้รับทุกบรรทัดพร้อมกัน (สิ้นสุดการดำเนินการ) ดังนั้นทุกบรรทัดจึงมีวันที่และเวลาเดียวกัน ฉันพยายามรับบรรทัดทุกครั้งที่สคริปต์สร้างบรรทัด ไม่ใช่ที่ส่วนท้ายของการดำเนินการ