lsコマンドの色を設定するために.bashrcをチェックし、これを見つけました。
export SHELL='/bin/bash'
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
dircolors
withの代わりに使用すると問題がありますかeval
?違いは何ですか?
ベストアンサー1
動作しませんeval dircolors
。dircolors
あなたに必要なもの:
eval "$(dircolors)"
(または古代形態eval "`dircolors`"
)
つまり、評価すべき結果ですdircolors
。dircolors
シェルで評価された出力コードは次のとおりです。
LS_COLORS='...'
export LS_COLORS
評価したいコードです。eval dircolors
同様に、出力がリダイレクトされない場合にのみ実行されるdircolors
ため、dircolors
上記のシェルコードは最終的に表示され、どのシェルでも評価されません。
また、シェル構文にオプションのリストを$LS_OPTIONS
含めたい場合(たとえば、thisなどを許可するなど)、次のように定義する必要があります。ls
--exclude='*~'
ls() {
eval 'command ls '"$LS_OPTIONS"' "$@"'
}
または以下を使用してzsh
:
alias ls='ls "${(Q@)${(z)LS_OPTIONS}}"'
スペースで区切られたオプションのリストを含めるには、bash 4.4+を使用してください。
ls() {
local IFS=' '
local -
set -o noglob
command ls $LS_OPTIONS "$@"
}
または以下を使用してzsh
:
alias ls='ls ${(s: :)LS_OPTIONS}'