我正在尝试设置颜色提示
asterisk CLI
。在文档中我发现了以下内容:%Cn[;n]
将终端前景(和可选背景)颜色更改为指定颜色。可以在 include/asterisk/term.h* 中找到完整的颜色列表但我找不到颜色代码应该采用什么格式。我尝试了所有可能的排列,但都不起作用:
ASTERISK_PROMPT="%Cn[COLOR_BLUE] %H: " asterisk -vvvvvvr ASTERISK_PROMPT="%Cn[32;128] %H: " asterisk -vvvvvvr ASTERISK_PROMPT="%Cn[32;] %H: " asterisk -vvvvvvr ASTERISK_PROMPT="%Cn[;32] %H: " asterisk -vvvvvvr ASTERISK_PROMPT="%Cn[;COLOR_CYAN] %H: " asterisk -vvvvvvr ASTERISK_PROMPT="%Cn[32|128] %H: " asterisk -vvvvvvr
例如,有人可以告诉我如何使我的星号提示变为红色吗?
另外,我对 CLI 提示还有另一个问题:
我在 Debian Wheezy 上使用 Asterisk 11.13。当我在 中时
asterisk CLI
,我可以使用命令历史记录和“类似 readline”的功能(例如 CTRL+r)进行搜索。但并非所有功能都可用。例如,用于搜索历史记录的“page up”和“page down”的替代映射不起作用。它们在其他所有东西(bash、mysql 等)中都有效$ cat /etc/inputrc "\e[5~": history-search-forward "\e[6~": history-search-backward
有没有办法让它在星号中工作?
答案1
“ASTERISK_PROMPT”是一个环境变量,应在启动 CLI 之前设置以使其生效。
IE
export ASTERISK_PROMPT="%C31%H*CLI%#"
asterisk -r
至于您的具体版本,(Asterisk 11 分支)不显示颜色的原因如下:
- 连接到服务器的命令行选项包括“无颜色”标志。
- 没有定义“term”环境变量。
- 如果 terminfo 数据库存在,并且不包含 max_colors 定义,或者值 = 0。
- “term”环境变量不包含下列之一:
- “xterm”
- “xterm 颜色”
- “xterm-256色”
- “永恒”
- “vt100”
- “crt”
如果满足任何这些条件...您将无法获得 vt100 颜色。
此信息直接取自源代码。
答案2
关于颜色问题。
- 首先要尝试的是:
杀死所有星号:
killall safe_asterisk
killall asterisk
设置你的期限:
export TERM=xterm-256color
从终端运行星号:(
/usr/sbin/asterisk -c
路径可能不同)
我确信你会看到它色彩缤纷。
- 如果 1. 没问题,那么深入研究 asterisk 如何从系统运行。我遇到的唯一问题是当 asterisk init 脚本是 时
/etc/init.d/asterisk
,但却使用 systemctl 运行。在我看来,systemctl 不知何故在 asterisk 启动时使用了它自己的 TERM 首选项。但是,我强制执行并添加了COLOR=yes
。/etc/init.d/asterisk
如果您放入此脚本export TERM=xterm-256color
,这可能会更加强制,但可用性取决于您。
答案3
要配置“类似 readline”的功能,请查看 libedit 提供的内容,您可以在 editrc 中进行配置(https://manpages.debian.org/jessie/libedit-dev/editrc.5.en.html)。
配置的程序名称应为“星号”(如果您要专门更改此程序的设置)。