在whiptail中更改颜色

5
有没有办法在whiptail中更改特定的颜色?
例如,将特定文本标记为红色?
例如:
#!/bin/bash
window=$(stty -a | tr \; \\012 |egrep 'rows|columns' | cut '-d ' -f3)
RED="red"
GREEN="green"


OPTION=$(whiptail --menu "\n\n\n\n\n\n\n\n" --title  "menu" --nocancel $window 20 \
"1" "COLOUR IS $RED" \
"2" "COLOUR IS $GREEN" 3>&1 1>&2 2>&3)

我该如何给$RED和$GREEN上色?

请提供一个有效的 whiptail 调用。您的示例引号不平衡,并且 $window 未指定。 - Micah Elliott
谢谢,$window将从shell获取当前窗口大小,但也可以手动调整。修复了引号。 - zlobul
2个回答

13
自版本0.52.13(于2011年发布)起,可以使用NEWT_COLORS环境变量,例如:
#!/bin/bash

export NEWT_COLORS='
window=,red
border=white,red
textbox=white,red
button=black,white
'

whiptail ...

或者,您可以创建一个包含调色板的配置文件,并使用NEWT_COLORS_FILE变量进行引用。有关更多信息,请参见此答案

这个补丁最初是由Ubuntu社区创建的,但后来被上游接受了


非常感谢,这几乎适用于所有情况,但我能否突出显示文本? - zlobul
很抱歉,whiptail没有类似的功能。dialog--colors开关并且可以处理嵌入式的\Z序列。 - Bass
谢谢Bass,我会将其标记为答案,因为这是到目前为止我发现的最接近的解决方案! - zlobul

2

whiptail 没有相关的命令选项或配置文件来更改其配色方案。您可以通过阅读其源代码了解它的功能:

dialog 具有此功能(请参见屏幕截图)。


谢谢,是的,没错。我希望有一种“hack”方法可以使用whiptail更改颜色...不幸的是,我的项目不能使用dialog。 - zlobul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接