所以我在中定义了以下变量/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
。
我究竟做错了什么?
笔记:最终,我想在脚本中用红色回显错误,用黄色回显警告,用绿色回显信息。
答案1
文件中的变量/etc/bash.bashrc
不会导出。该文件可由任何交互式非登录 shell 读取,但不能由 shell 脚本读取(这些脚本是非交互式的)。
由于变量未导出,因此它们在脚本环境中不可用。
我会建议不是修改发行版提供的文件/etc/bash.bashrc
,改为:
- 在脚本本身中添加变量(不需要导出),或者
- 将它们添加(并导出)到您的个人
.bashrc
文件中,或者 - 将它们添加(并导出)到一个单独的
.sh
文件中,在/etc/profile.d
该文件下导出任何登录 shell 的变量。登录 shell 由您的终端应用程序或您登录时的图形环境(或两者)启动。
如果添加变量任何地方除了在脚本本身中(在脚本未明确来源的文件中)之外,如果您从cron
.