下面的代码在 Bash 中运行良好,并显示具有正确绿色背景颜色的文本,但当我将其添加到文件夹时~/.byobu/bin/
,它会显示转义字符。类似[42米[1毫AAPL:30.345 (B[米
#!/bin/sh
echo `tput setab 2;tput bold`AAPL:`curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv' | cut -d, -f2;tput sgr0`
答案1
如果使用tmux
byobu 的后端,您将需要使用不同的颜色代码格式。幸运的是,它比格式简单得多screen
。
要设置颜色,请使用#[<color and attribute codes>]
。例如:
#[default]
:恢复默认颜色(在自定义状态结束时使用)。#[fg=red]
:设置前景色为红色。#[fg=#ff0000]
:将前景色设置为#ff0000
。仅接受小写字母 -FF0000
不起作用。#[bg=black]
:使背景变为黑色。#[fg=bold]
:制作文字大胆的。更多内容请参见下文。#[reverse]
:交换前景色/背景色。
您可以将它们组合起来,例如#[fg=white,bold,bg=black]
。
命名颜色:black
,,,,,,,,,,,,,,,,,,,red
green
yellow
blue
magenta
cyan
white
black
brightblack
brightred
brightgreen
brightyellow
brightblue
brightmagenta
brightcyan
brightwhite
属性:dim
,underscore
,bold
,reverse
,standout
,blinking
,hidden
,italics
您还可以使用环境变量$BYOBU_LIGHT
、$BYOBU_DARK
、$BYOBU_ACCENT
和$BYOBU_HIGHLIGHT
作为颜色。
为了玩这个,创建一个~/.byobu/bin/1_hello
包含以下内容的文件,并使其可执行。
#!/bin/sh
echo "#[reverse]Hello world#[default]"
这应该创建一个黑底白字的状态通知,上面写着“Hello world”。
以下是两个示例自定义状态栏组件以及生成它们的代码:
#[fg=#aa77cc,bg=#222222] @XXX.XX #[default]
#[fg=white,bg=black] ✉ ️X #[default]
此信息将大概但只有当你使用tmux
启用颜色的 shell 时才有效 :)
(来源:/usr/lib/byobu/include/colors
、/usr/lib/byobu/include/shutil
)
答案2
您需要在屏幕上使用其他颜色说明符(请参阅screen(1) 的手册页)。因此,首先应该将值保存在一个变量中:
AAPL=$(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&=.csv' | cut -d, -f2)
在第二步中,您可以使用以下命令输出它printf
:
printf "\005{= b}%s%s\005{-}" "AAPL: " "$AAPL"