Điểm:4

Giữ nguyên màu sắc trong bảng điều khiển của đầu ra tập lệnh Bash trong khi ghi nhật ký

lá cờ kp

Tôi muốn giữ nguyên màu sắc, trong bảng điều khiển, của đầu ra tập lệnh Bash, trong khi ghi nhật ký và lặp lại nó vào bảng điều khiển.

Khi tôi chạy tập lệnh có mã sau, tôi bị mất màu trong bảng điều khiển.

LOG_FILE="Hợp nhất.log"
chạm vào $LOG_FILE

exec > >(tee $LOG_FILE) 2>&1;

Dưới đây là ảnh chụp màn hình để làm cho nó rõ ràng:

Màn hình một và hai bị vô hiệu hóa ghi nhật ký (đã nhận xét) trong tập lệnh:

Màn hình-1:

Màn hình một

Màn hình-2:

Màn hình hai

Màn hình ba và bốn được kích hoạt ghi nhật ký trong tập lệnh:

Màn hình-3:

Màn hình ba

Màn hình-4:

Màn hình bốn

Tôi đã tìm kiếm khá nhiều nhưng không thể tìm thấy bất kỳ giải pháp nào. Cảm ơn.

Hệ điều hành: Ubuntu MATE 21.04

Phiên bản Bash: 5.1.4(1)-phát hành (x86_64-pc-linux-gnu)

lá cờ hr
Tôi không nghĩ rằng có bất kỳ điều gì hữu ích trong phần Hỏi & Đáp về stackoverflow mà bạn đã liên kết - trên thực tế, nếu bạn đọc các nhận xét, cả hai câu trả lời đã đăng đều thực hiện chính xác *ngược lại* những gì được hỏi (tức là *xóa* mã màu khỏi đầu ra có màu) . Vấn đề ở đây là bất kỳ quy trình nào đang ghi vào thiết bị xuất chuẩn / thiết bị xuất chuẩn (được chuyển hướng) của bạn đều phát hiện ra rằng đích của chúng không còn là thiết bị đầu cuối nữa và đang xóa màu trước khi dữ liệu thậm chí đến được lệnh `tee`.
Jags avatar
lá cờ kp
@steeldriver vừa xóa liên kết StackOverflow. Cảm ơn.
Bruni avatar
lá cờ cn
Có lẽ điều này sẽ hữu ích: https://askubuntu.com/questions/647805/how-to-print-the-output-of-tree-to-pdf-without-losing-the-color
Jags avatar
lá cờ kp
@bruni Cảm ơn. Ý bạn là nói, sử dụng `aha`? 'vì dường như tôi không thể tìm ra cách sử dụng `aha` với `tee`.
Bruni avatar
lá cờ cn
@Jags vâng, ý tôi là vậy, nhưng bạn nói đúng, nó có thể không hoạt động với tee. Tôi nhớ rằng tee cũng loại bỏ màu trên bảng điều khiển.
Bruni avatar
lá cờ cn
Hãy thử thêm một lần nữa, điều gì đó nằm trong dòng câu trả lời được chấp nhận cho vấn đề này: https://superuser.com/questions/352697/preserve-colors-while-piping-to-tee
Jags avatar
lá cờ kp
@bruni Tôi vừa xóa bình luận trước đây của mình. Lúc đầu, tôi nghĩ, nó đang hoạt động nhưng thực ra tôi đang gặp lỗi. Nó không tạo ra bất kỳ nhật ký nào.
Jags avatar
lá cờ kp
@bruni Tôi gặp lỗi trong `Merge.log` và trong bảng điều khiển nữa: `không thể thực thi "exec": không có tệp hoặc thư mục như vậy | trong khi thi hành | "spawn -noecho exec" | ("eval" dòng nội dung 1) | được gọi từ bên trong` `"eval [list spawn -noecho] $argv" | được gọi từ bên trong | "if {[so sánh chuỗi [lindex $argv 0] "-p"] == 0} {` ` # đường dẫn | set stty_init "-echo" | eval [danh sách sinh sản -noecho] [lrange $argv 1 end] | clo ..." | (tệp "/usr/bin/unbuffer" dòng 13)`
Bruni avatar
lá cờ cn
@Jags rất đáng để thử...Bạn đã thử sử dụng `script` như trong câu trả lời được chấp nhận cho vấn đề này chưa: https://stackoverflow.com/questions/3515208/can-colorized-output-be-captured-via-shell- chuyển hướng
Jags avatar
lá cờ kp
@bruni Vâng, tôi đã xem qua chuỗi StackOverflow đó ngay cả trước khi đăng câu hỏi này, nhưng tôi không thể tìm ra cách sửa đổi nó theo trường hợp sử dụng của mình để thậm chí dùng thử. Cảm ơn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.