【问题标题】:Bash: "tput initc" doesn't seem to workBash:“tput initc”似乎不起作用
【发布时间】:2014-09-29 12:18:13
【问题描述】:

我正在编写一个 bash 脚本,我从一些 tput initc 命令开始,用于指定脚本中使用的自定义颜色。但是当我运行脚本进行测试时,它似乎仍在使用Terminal.app 的默认“基本”主题颜色。 (我正在使用运行全新安装的 Mavericks 的虚拟机进行测试。)

这是我正在使用的命令:

tput initc 0 300 300 300
tput initc 1 800 210 100
tput initc 2 650 760 380
tput initc 3 800 460 180
tput initc 4 350 530 670
tput initc 5 630 380 470
tput initc 6 470 710 760
tput initc 7 810 810 810
tput initc 8 570 570 570
tput initc 9 1000 280 200
tput initc 10 720 710 0
tput initc 11 1000 780 430
tput initc 12 530 760 1000
tput initc 13 820 820 1000
tput initc 14 440 760 830
tput initc 15 910 910 910

所以举个例子,这应该将黄色 (3) 设置为一种褐色,但是当我然后执行 tput setaf 3 并回显一些文本时(在单独的行上或使用 @ 将其包含在回显中987654325@ 语法)它仍然只打印相同的默认黄色。

我做错了什么?我在initc 上的文档中几乎没有找到——我什至没有在tput 的手册页中看到它——所以我不确定我是否正确使用它。

谢谢!

【问题讨论】:

  • 查看tput initc 0 300 300 300 | cat -v 的输出和$TERM 的值可能会有所帮助。
  • $TERM = "xterm-256color"
  • tput initc 0 300 300 300 | cat -v 输出以下内容:^[]4;0;rgb:4C/4C/4C^[\

标签: macos bash terminal tput


【解决方案1】:

Terminal.app 不支持您在此处尝试使用的控制序列。您需要使用其他终端应用程序(例如iTerm2),或使用标准 256 中已有的颜色。

【讨论】:

  • 我不认为这是正确的,因为我在终端主题中使用了自定义颜色。 (事实上​​,它们与我试图在脚本中使用的颜色相同。)
  • 您可以在 Terminal.app 配置文件中更改颜色,但不能在运行时使用控制序列更改它们。
猜你喜欢
  • 2023-04-09
  • 2016-11-29
  • 2016-02-01
  • 2020-09-23
  • 2010-12-05
  • 2011-06-14
  • 2015-01-10
  • 2016-02-24
  • 2011-01-18
相关资源
最近更新 更多