web-dev-qa-db-ja.com

エラー「dircolors:シェル環境変数がなく、シェルタイプオプションが指定されていません」

Linux Mint 17.3 Cinnamonの実行

しばらく前に、ターミナルの色を変更するスクリプトを作成しました(私がフォローしていたチュートリアルに合わせるため)

ただし、別のアカウントでターミナルを開くと、次のエラーが発生します。

dircolors: no Shell environment variable, and no Shell type option given

スクリプトはもう必要ないので、これがどこにあるかを追跡して削除するにはどうすればよいですか?

7
43Tesseracts

could~/.bashrcまたは/etc/profile;以外にもスクリプトを使用した場所がいくつかあります。加えた変更の詳細を提供しないと、一般的なアドバイスしか得られません。たとえば、

  • /etc/profile.dのファイルを変更または追加した
  • ~/.profileまたは~/.bash_profileを変更しました
  • スクリプト(またはデスクトップの「ランチャー」)を介してターミナルを実行する

あなたはgrepを使って可能な場所を見つけることができます、例えば、

$ grep -r -l dircolors /etc ~ 2>/dev/null
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh
/etc/DIR_COLORS
/etc/DIR_COLORS.lightbgcolor
/etc/DIR_COLORS.256color

エラーメッセージはdircolorsからのものです( ソースコードを参照 )。これは、Shell環境変数が設定されていないか空の場合に行われます( source-コード チェック用)。

2
Thomas Dickey

Shellが設定されていないときにdircolors(「ls」からのカラフルな出力)が必要ない場合は、eval dircolorsコマンドを「if」で囲みます。

常に/ bin/bashを使用する場合は、次のようにしてください。

# enable color support of ls and also add handy aliases
if [ $Shell = "/bin/bash" -a -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi
0
Simon B.