当我在桌面 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)。
有没有可靠的方法来检查我的终端模拟器支持多少种颜色?
如果echo $TERMprints xterm,这是否明确告诉我我的终端模拟器支持多少种颜色?我怎样才能可靠地检查这些信息?
我制作了一个生成彩色输出的 bash 脚本。从交互式 shell 调用脚本时,颜色很好。但是,如果输出在另一个脚本中处理,或通过管道传递,则不应着色(我认为)。
这个一般是怎么处理的?我应该提供一个选项来打开/关闭彩色输出,还是有办法在脚本中自动检测?最好它自动工作,我只需要最少的代码来输出彩色/非彩色,具体取决于脚本调用......
自动检测的一个问题似乎是脚本总是以非交互方式运行,所以我必须知道父 shell 的交互状态。