相关疑难解决方法(0)

TERM 环境变量默认在哪里设置?

当我在桌面 GUI 中使用 GNOME 终端模拟器打开终端窗口时,shell TERM 环境变量默认为值xterm

如果我使用CTL+ ALT+F1切换到控制台TTY窗口和echo $TERM的值被设定为linux

我询问的动机是在我的~/.bashrc文件中使用一个变量来确定是否提供了彩色外壳或只是老式的单色。

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac
Run Code Online (Sandbox Code Playgroud)

如果我键入,则在控制台外壳和 Gnome 终端仿真器外壳中

export TERM=xterm-color
source /.bashrc
Run Code Online (Sandbox Code Playgroud)

两个外壳都更改为颜色模式(我希望两者都发生)。

请在哪里TERM设置默认值,如果可能,更改默认值的最佳位置在哪里?终端仿真器 GUI 中似乎没有任何内容可以选择或设置默认的 TERM 值。

我确实考虑过将这一行添加export TERM=xterm-color到我的~/.bashrc文件顶部,但我的直觉告诉这不是最好的解决方案,而且我的 Google 搜索还没有让我得到一个好的答案。

我正在运行 Ubuntu 15.04 桌面版(基于 Debian)。

shell colors bash terminal environment-variables

37
推荐指数
2
解决办法
6万
查看次数

检查我的终端模拟器支持多少种颜色

有没有可靠的方法来检查我的终端模拟器支持多少种颜色?

如果echo $TERMprints xterm,这是否明确告诉我我的终端模拟器支持多少种颜色?我怎样才能可靠地检查这些信息?

terminal-emulator

23
推荐指数
3
解决办法
2万
查看次数

仅当从交互式 shell 调用时才输出颜色脚本

我制作了一个生成彩色输出的 bash 脚本。从交互式 shell 调用脚本时,颜色很好。但是,如果输出在另一个脚本中处理,或通过管道传递,则不应着色(我认为)。

这个一般是怎么处理的?我应该提供一个选项来打开/关闭彩色输出,还是有办法在脚本中自动检测?最好它自动工作,我只需要最少的代码来输出彩色/非彩色,具体取决于脚本调用......

自动检测的一个问题似乎是脚本总是以非交互方式运行,所以我必须知道父 shell 的交互状态。

colors bash shell-script

4
推荐指数
1
解决办法
2298
查看次数