Bash

bash 腳本中的顏色錯誤/警告/資訊

  • November 17, 2018

所以我在中定義了以下變數/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.

引用自:https://unix.stackexchange.com/questions/482327