Tôi có thể định cấu hình thiết bị đầu cuối để hiển thị đầu ra stderr với màu khác không


11

Có thể định cấu hình thiết bị đầu cuối trong OS X để hiển thị stderrđầu ra tự động theo màu khác với stdoutđầu ra từ một quy trình không?

Hoặc điều này chỉ có thể nếu quá trình xuất ra màu đầu ra?


Đáng buồn thay, kể từ năm 2019 , câu trả lời chính xác là điều này không còn có thể . Cả hai hilitestderredkhông rõ ràng và bị hỏng và tôi vẫn đang tìm kiếm một cách giải quyết.
sorin

@sorin Tôi mới cài đặt hilitequa Homebrew, nó vẫn hoạt động như mong đợi (sẽ rất ngạc nhiên nếu không thực sự, nó sử dụng chức năng rất cơ bản để hoàn thành nhiệm vụ của mình).
nohillside

@sorin stderredcó thể không hoạt động lâu hơn vì dường như thay đổi vị trí các thư viện động được tải từ đó, điều này có thể bị ngăn chặn bởi SIP ngay hôm nay
nohillside

Câu trả lời:


9

Không có giải pháp đơn giản, nhưng có ít nhất một vài cách giải quyết có sẵn để làm điều này.

  • Bạn có thể cài đặt hilite bằng cách xây dựng tệp C duy nhất ( hilite.ctrong trường hợp này) hoặc bằng cách sử dụng brew install hilite(với homebrew được cài đặt trên hệ thống). Sử dụng nó như hilite <command>.

  • Bạn có thể sử dụng lệnh từ câu trả lời này trên serverfault (thay thế commandbằng tên tập lệnh / lệnh của bạn) để làm cho stderr xuất hiện màu đỏ (đối với các màu khác, tham khảo danh sách trình tự thoát ANSI và thay đổi 31m trong lệnh bên dưới cho phù hợp):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Bạn có thể sử dụng stderred để tô màu stderr màu đỏ.


3

Bạn có thể muốn xem stderred cho phép xuất Stderr màu đỏ.

Nó tương thích với OSX và có một hướng dẫn để cài đặt nó trên OSX.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.