Score:4

รักษาสีในคอนโซลของเอาต์พุตสคริปต์ Bash ขณะบันทึก

ธง kp

ฉันต้องการรักษาสีในคอนโซลของเอาต์พุตสคริปต์ Bash ในขณะที่บันทึกและสะท้อนไปยังคอนโซล

เมื่อฉันรันสคริปต์ด้วยโค้ดต่อไปนี้ สีในคอนโซลจะหายไป

LOG_FILE="Merge.log"
แตะ $LOG_FILE

ผู้บริหาร > >(tee $LOG_FILE) 2>&1;

นี่คือภาพหน้าจอเพื่อให้ชัดเจน:

หน้าจอที่หนึ่งและสองปิดใช้งานการบันทึก (แสดงความคิดเห็น) ในสคริปต์:

หน้าจอ-1:

หน้าจอหนึ่ง

หน้าจอ-2:

หน้าจอที่สอง

หน้าจอที่สามและสี่เปิดใช้งานการบันทึกในสคริปต์:

หน้าจอ-3:

หน้าจอที่สาม

หน้าจอ-4:

หน้าจอที่สี่

ฉันค้นหาค่อนข้างมาก แต่ไม่พบวิธีแก้ปัญหาใด ๆ ขอบคุณ.

ระบบปฏิบัติการ: Ubuntu MATE 21.04

รุ่น Bash: 5.1.4(1)-release (x86_64-pc-linux-gnu)

hr flag
ฉันไม่คิดว่าจะมีประโยชน์อะไรในคำถาม & คำตอบ stackoverflow ที่คุณเชื่อมโยง - อันที่จริงถ้าคุณอ่านความคิดเห็น คำตอบที่โพสต์ทั้งสองจะทำ *ตรงข้าม* ของสิ่งที่ถามทุกประการ (เช่น *ลบ* รหัสสีจากเอาต์พุตสี) . ปัญหาที่นี่คือกระบวนการใดก็ตามที่เขียนไปยัง (เปลี่ยนเส้นทาง) stdout / stderr ของคุณตรวจพบว่าปลายทางไม่ใช่เทอร์มินัลอีกต่อไป และกำลังลบสีก่อนที่ข้อมูลจะไปถึงคำสั่ง `tee`
Jags avatar
kp flag
@steeldriver เพิ่งลบลิงก์ StackOverflow ขอบคุณ.
Bruni avatar
cn flag
อาจช่วยได้: https://askubuntu.com/questions/647805/how-to-print-the-output-of-tree-to-pdf-without-losing-the-color
Jags avatar
kp flag
@บรูนี่ ขอบคุณ คุณหมายถึงพูดว่า ใช้ `aha` เหรอ? 'เพราะฉันนึกไม่ออกว่าจะใช้ `aha` กับ `tee` อย่างไร
Bruni avatar
cn flag
@Jags ใช่นั่นคือสิ่งที่ฉันหมายถึง แต่คุณพูดถูก มันอาจจะไม่ทำงานกับที ฉันพลาดทีทียังละทิ้งสีบนคอนโซล
Bruni avatar
cn flag
ลองอีกครั้ง บางสิ่งบางอย่างในบรรทัดของคำตอบที่ยอมรับ: https://superuser.com/questions/352697/preserve-colors- while-piping-to-tee
Jags avatar
kp flag
@bruni ฉันเพิ่งลบความคิดเห็นก่อนหน้าของฉัน ตอนแรกฉันคิดว่ามันใช้งานได้ แต่จริงๆ แล้วฉันได้รับข้อผิดพลาด มันไม่ได้สร้างบันทึกใด ๆ
Jags avatar
kp flag
@bruni ข้อผิดพลาดที่ฉันได้รับใน `Merge.log` และในคอนโซลด้วย: `ไม่สามารถเรียกใช้ "exec": ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว | ขณะดำเนินการ | "วางไข่ -noecho exec" | (บรรทัดเนื้อหา "eval" 1) | เรียกใช้จากภายใน` `"eval [รายการวางไข่ -noecho] $argv" | เรียกใช้จากภายใน | "if {[สตริงเปรียบเทียบ [lindex $argv 0] "-p"] == 0} {` `# ไปป์ไลน์ | set stty_init "-echo" | eval [รายการวางไข่ -noecho] [lrange $argv 1 จบ] | clo ..." | (ไฟล์ "/usr/bin/unbuffer" บรรทัดที่ 13)`
Bruni avatar
cn flag
@Jags คุ้มค่าที่จะลอง ... คุณลองใช้ `script` เหมือนในคำตอบที่ยอมรับนี้หรือไม่: https://stackoverflow.com/questions/3515208/can-colorized-output-be-captured-via-shell- เปลี่ยนเส้นทาง
Jags avatar
kp flag
@bruni ใช่ฉันเจอเธรด StackOverflow นั้นก่อนที่จะโพสต์คำถามนี้ แต่ฉันไม่สามารถหาวิธีแก้ไขเป็นกรณีการใช้งานของฉันเพื่อลองได้ ขอบคุณ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา