Bashスクリプトのカラーエラー/警告/情報

Bashスクリプトのカラーエラー/警告/情報

だから、次の変数を定義しました/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" プロンプトに従ってください実際にはRedgnome-terminalでは赤が表示されますが、実行すると次のようになります。

#!/bin/bash

echo -e "$FRED Red"
echo -e "$FYEL Yellow"
echo -e "$FGRN Green"

$TERMそれでも私はすべてを基本色として得ますxterm-256color

スクリーンショットには正確な出力が含まれています。

私は何が間違っていましたか?

メモ:最終的にスクリプトエコーエラーは赤で、警告は黄色で、情報は緑で表示したいと思います。

答え1

ファイルの変数は/etc/bash.bashrcエクスポートされません。このファイルはログインではなく、すべての対話型シェルから読み取ることができますが、シェルスクリプト(これらのスクリプトは非対話型)では読み取れません。

変数はエクスポートされないため、スクリプト環境では使用できません。

私が提案するいいえディストリビューションが提供するファイルを/etc/bash.bashrc次のように変更します。

  • スクリプト自体に変数を追加する(エクスポートする必要はありません)
  • 個人.bashrcファイルに追加(およびエクスポート)または
  • ログインシェルの変数をエクスポートする別の.shファイルに追加してエクスポートします。/etc/profile.dログインシェルは、ログイン時に(またはその両方)、ターミナルアプリケーションまたはグラフィック環境によって実行されます。

変数を追加するとどこかにスクリプト自体内(スクリプトが明示的にソースを提供しないファイル内)に加えてcron

関連情報