【问题标题】:perl Term::ANSIColor not working on Raspberry Pi Consoleperl Term::ANSIColor 在 Raspberry Pi 控制台上不起作用
【发布时间】:2018-06-23 17:05:36
【问题描述】:

这段代码:

use Term::ANSIColor;
print color("blink bold red"), "TEST\n";
print color("reset"); 

已经在我使用过的任何 linux 控制台上工作了 eons。但是,当我在运行 Raspbian Stretch 的 Raspberry Pi 控制台(不是 Xwindows)上尝试它时,它只是将文本着色为红色,但不会闪烁。任何人都对我如何使其工作有任何想法?

【问题讨论】:

  • 正确的名称是 Linux 帧缓冲控制台,这样每个人都知道我们在说什么。我可以确认眨眼不起作用。
  • 是的,它肯定不起作用,因此发布了。您是否碰巧知道它为什么在 Centos 控制台(帧缓冲区)中工作,而不是在 Raspian 控制台/帧缓冲区中工作。我相信找出并理解两者之间的差异是我找到解决方案的第一步。

标签: linux perl raspberry-pi raspberry-pi3 raspbian


【解决方案1】:

闪烁、斜体或粗体等属性可能不适用于 256 色调色板。 -documentation

【讨论】:

  • 是的,我看到您网站的文档说:“请注意,并非所有终端类型都支持所有属性,并且某些终端可能不支持这些序列中的任何一个。”但是“所有终端类型都支持”应该是什么意思?有多少种独特的 linux 终端/控制台类型? --不是在谈论终端仿真器。从任何 linux 机器(不在 Xwindows 中)当我输入:ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$) 时,我都会得到“/bin/login --”。简单地说“它可能不起作用”并不能说明它确实适用于看似相同的“终端类型”。
  • 我什至可以找到这样的实例,其中 blink 在具有完全相同 terminfo 和 termcap 输出的机器上工作的机器与它不工作的机器上工作的机器相同。请看:unix.stackexchange.com/questions/269809/…
【解决方案2】:

经过实验,我可以得出结论,perl ANSI color 的闪烁功能在 Raspberry PI 上不起作用的原因是因为显示器是通过 HDMI 连接的。如果从带有 VGA 显示器的机器远程登录,perl ANSI 颜色实际上会在 Raspberry PI 上闪烁。

更新:进一步的测试得出结论,使用 HDMI 到 VGA 适配器将 VGA 显示器连接到树莓派时,闪烁功能将无法正常工作 - 所以省钱了。让 perl ANSIColor 的闪烁功能在 PI 上工作的唯一方法是从显示 VGA 的机器 ssh 到机器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多