ใน Unix shell ฉันมีไฟล์ env (ไฟล์env กำหนดพารามิเตอร์ที่จำเป็นสำหรับการรันสคริปต์ผู้ใช้เช่นชื่อไฟล์บันทึกและเส้นทางเอาต์พุตการเปลี่ยนเส้นทางและข้อผิดพลาดไปยังไฟล์บันทึกรายละเอียดการเชื่อมต่อฐานข้อมูล ฯลฯ ) ซึ่งเปลี่ยนทิศทางเอาต์พุตทั้งหมด ( ข้อความสะท้อน ) และข้อผิดพลาดกับไฟล์บันทึกจากสคริปต์ที่เรียกใช้งานโดยใช้รหัสต่อไปนี้:
exec 1>>${LOG_FILE}
exec 2>>${LOG_FILE}
ไฟล์ env ถูกเรียกใช้ที่จุดเริ่มต้นของแต่ละสคริปต์ เนื่องจากโค้ดด้านบนในไฟล์ env เอาต์พุตคอนโซลทั้งหมดที่อาจเป็นเอาต์พุตของผู้ใช้หรือข้อผิดพลาดจะถูกส่งออกไปยังไฟล์บันทึกโดยตรงซึ่งเป็นสิ่งที่ฉันต้องการจริงๆ
แต่มีเอาต์พุตของผู้ใช้ที่เลือกซึ่งฉันต้องการให้แสดงทั้งในคอนโซลและล็อกไฟล์ แต่เนื่องจากรหัสด้านบนฉันไม่สามารถทำได้
ฉันรู้ว่าถ้าฉันลบโค้ดด้านบนฉันจะได้ผลลัพธ์ที่ต้องการสำหรับกรณีนี้ แต่ฉันจะต้องเขียนผลลัพธ์อื่น ๆ ทั้งหมดลงในไฟล์บันทึกด้วยตนเองซึ่งไม่ใช่เรื่องง่าย
มีวิธีรับเอาต์พุตทั้งในคอนโซลและล็อกไฟล์โดยไม่ต้องลบโค้ดด้านบนหรือไม่