所以我在中定义了以下变量/etc/bash.bashrc
:
RS="\033[0m" # reset
HC="\033[1m" # hicolor
UL="\033[4m" # underline
INV="\033[7m" # inverse background and foreground
FBLK="\033[30m" # foreground black
FRED="\033[31m" # foreground red
FGRN="\033[32m" # foreground green
FYEL="\033[33m" # foreground yellow
当我echo -e "$FRED Red"
在提示符处执行操作时,实际上我Red
在 gnome-terminal 上变成了红色,但是当我执行时:
#!/bin/bash
echo -e "$FRED Red"
echo -e "$FYEL Yellow"
echo -e "$FGRN Green"
即使$TERM
是,我也会以默认颜色获得所有内容xterm-256color
。
我究竟做错了什么?
注意:最终我想在我的脚本中以红色显示错误,以黄色显示警告和以绿色显示信息。
/etc/bash.bashrc
不会导出文件中的变量。该文件由任何交互式非登录 shell 读取,但不是由 shell 脚本读取(这些是非交互式的)。由于未导出变量,因此它们在脚本环境中不可用。
我建议不要修改分发提供的文件
/etc/bash.bashrc
,而是:.bashrc
文件中,或者.sh
文件中,在/etc/profile.d
该文件中导出任何登录 shell 的变量。登录 shell 可以由您的终端应用程序启动,也可以由您登录时的图形环境启动(或两者都启动)。如果您将变量添加到脚本本身以外的任何位置(在脚本未明确引用的文件中),那么如果您从
cron
.