Colors
手錶中不顯示鮮豔的顏色–color
給定以下 python 腳本來列印彩色文本:
for i in range(30, 100): print(f'\033[{i}m{i}\033[0m', end=' ') print()
在 bash 上執行會正確顯示明亮的顏色(FG 程式碼 91-97):
但是使用 執行此程式碼
watch --color python3 test.py
,無法正確顯示明亮的顏色:認為 watch 命令在 中執行有問題
sh
,我執行watch --color --exec bash -c 'python3 test.py'
但結果與上面相同。我正在通過 Windows WSL2 執行 Ubuntu 20.04,但可以在 RHEL7 上看到類似的行為。有任何想法嗎?
當您執行時,
watch --color
您要求watch
處理 ANSI 序列。該程序有一個硬連線到程式碼中的顏色限制,它不會理解任何大於 47 的內容。這是針對版本 3.3.16(最新的穩定版)。您應該能夠使用
watch --version
.default: if (attrib >= 30 && attrib <= 37) { /* set foreground color */ fg_col = attrib - 30 + 1; } else if (attrib >= 40 && attrib <= 47) { /* set background color */ bg_col = attrib - 40 + 1; } else { return 0; /* Not understood */ }
主分支考慮鮮豔的顏色,所以最終它會被WSL2修復和拾取。與此同時,您唯一的選擇是自己編譯並更改程式碼。
watch