如何在 Debian 的 MOTD 中创建亮白色背景上的深蓝色文本?

如何在 Debian 的 MOTD 中创建亮白色背景上的深蓝色文本?

这就是我目前所拥有的。它在亮白色上显示黑色。但是,我想要在亮白色上显示蓝色(0;34m)。

^[[0;7;34;37;5mWelcome!^[[0m

我用了这个网站作为参考,但我没能让它工作。任何帮助都将不胜感激。

答案1

/etc/motd文件是数据(不能包含脚本,例如“ echo -e”),并且呈现给所有登录,无论其实际终端类型如何。当你对于某些配置执行此操作,通常的建议应该/etc/motd是纯文本(无转义序列),因为:

  • 尝试打印彩色文本时未考虑无论用户的终端可以显示转义序列,
  • 这些颜色不考虑终端的当前(或默认)前景色和背景色,并且
  • 不要考虑某些登录可能会将非打印字符转换为“可读”形式。

如果你真的想这样做,你应该意识到

  • 获取特定的背景颜色取决于终端,
  • 文字背景颜色不一定与终端的颜色相同(甚至接近)默认背景颜色,
  • 某些终端会使用当前的“ANSI 颜色”来擦除屏幕区域的颜色,例如清除屏幕时,而其他终端则不会。

进一步阅读:

答案2

我会建议不是遵循这些说明。 motd 会呈现给所有交互式登录,无论终端类型如何。这意味着在输出中嵌入控制字符对于至少一个用户来说将是错误的,至少一次。

如果您觉得确实必须,请使用tput为用户终端生成正确的代码。这样就安全多了。对于白底蓝色,请使用

tput setaf 4; tput setab 7

相关内容