2010-09-25 26 views
51

Một số lệnh mà tôi sử dụng màu sắc hiển thị, nhưng khi tôi sử dụng chúng với chiếc đồng hồ màu sắc biến mất:Màu sắc với lệnh unix "watch"?

watch -n 1 node file.js 

Có thể có các màu sắc trở lại bằng cách nào đó?

+0

bản sao có thể có của [Làm cách nào để lệnh theo dõi diễn giải chuỗi vt100?] (Http://stackoverflow.com/questions/2417824/how-can-i-make-the-watch-command-interpret-vt100- trình tự) – l0b0

Trả lời

64

Một số phiên bản mới hơn của watch hiện hỗ trợ màu.

Ví dụ: watch --color ls -ahl --color.

Related.

+1

hãy xem: http://superuser.com/questions/125469/bash-watch-command-with-colors-preserved (câu trả lời đầu tiên) - Có thể bạn có thể liên kết nó trong câu trả lời của bạn. – aatdark

+6

Tôi đến đây để sử dụng 'watch' với' git diff'. FWIW, để làm được điều đó, bạn phải chuyển '--color = always' thành' git diff' (ví dụ 'watch --color git diff --color = always'. – theabraham

+0

Nói cách khác:" Watch * does * làm việc với đầu ra màu " – nobar

1

Từ hướng dẫn xem:

Ký tự không in sẽ bị tước khỏi đầu ra chương trình. Sử dụng "cat -v" như một phần của đường dẫn lệnh nếu bạn muốn xem chúng.

Mặc dù, tôi không chắc chắn cách sử dụng nó.

+4

Điều này khiến các ký tự điều khiển hiển thị trong đầu ra cho tôi, thay vì gây ra màu. Ví dụ 'watch -c" ls --color | cat -v "' hiển thị '^ [[0m^[[01; 34mAgent^[[0m' cho dòng đầu tiên. –

11

Bạn có thể lặp lại trong các cơ bản, không kiểu cách hoạt động của watch trong một vài dòng shell script.

$ cat cheapwatch 
#!/bin/sh 

# Not quite your Rolex 

while true ; do 
    clear 
    printf "[%s] Output of %s:\n" "$(date)" "$*" 
    # "[email protected]" <- we don't want to do it this way, just this: 
    ${SHELL-/bin/sh} -c "$*" 
    sleep 1 # genuine Quartz movement 
done 

$ ./cheapwatch ls --color # no problem 

Cuối cùng, một người nào đó rất thông minh sẽ hack một lệnh tr vào kịch bản này mà dải ký tự điều khiển, và sau đó buộc người dùng phải sử dụng để vô hiệu hóa --color logic. Trong thời gian này, sự ngây thơ tuyệt đối của việc thực hiện này là giữ con quái vật ăn màu.

Nếu bạn đang ở trong một tình huống mà watch không có tùy chọn --color và bạn không thể nâng cấp gói vì lý do gì, có lẽ bạn có thể ném này trong.

9

Không sử dụng watch ... Khi bạn sử dụng các chương trình xem có thể phát hiện chúng không ghi vào thiết bị đầu cuối và sau đó loại bỏ màu. Bạn phải sử dụng cờ chương trình cụ thể để giữ mã kiểm soát ở đó.

Nếu bạn không biết những lá cờ hoặc không có bạn có thể làm cho người đàn ông đồng hồ của một người nghèo theo:

while sleep <time>; do clear; <command>; done 

Nó sẽ có một chút rung (xem công trình "đôi đệm") nhưng đối với một số thứ nó đủ hữu ích.

Bạn có thể bị cám dỗ để làm cho đồng hồ một đôi đệm nghèo của con người sử dụng

while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done 

Nhưng sau đó bạn sẽ đánh một lần nữa là "Tôi không bằng văn bản cho một thiết bị đầu cuối" tính năng.

+0

Có thể sử dụng 'khi đang ngủ

+0

mmm Tôi không nhận được nó @ AndréLeria ... | tee sẽ loại bỏ các mã màu như 'watch' làm và không ngăn lệnh từ nhấp nháy – theist

+0

Đó là một gợi ý cho ví dụ thứ hai, cũng không cho tôi màu sắc. Có lẽ tôi đang làm điều gì đó sai? –

Các vấn đề liên quan