だから、次の変数を定義しました/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
エクスポートされません。このファイルはログインではなく、すべての対話型シェルから読み取ることができますが、シェルスクリプト(これらのスクリプトは非対話型)では読み取れません。
変数はエクスポートされないため、スクリプト環境では使用できません。
私が提案するいいえディストリビューションが提供するファイルを/etc/bash.bashrc
次のように変更します。
- スクリプト自体に変数を追加する(エクスポートする必要はありません)
- 個人
.bashrc
ファイルに追加(およびエクスポート)または - ログインシェルの変数をエクスポートする別の
.sh
ファイルに追加してエクスポートします。/etc/profile.d
ログインシェルは、ログイン時に(またはその両方)、ターミナルアプリケーションまたはグラフィック環境によって実行されます。
変数を追加するとどこかにスクリプト自体内(スクリプトが明示的にソースを提供しないファイル内)に加えてcron
。