これらの2行の違いは何ですか?
export XDG_CONFIG_HOME="$HOME/.config"
export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc"
そして、次の2行は次のとおりです。
export XDG_CONFIG_HOME="$HOME/.config"
export XINITRC="${XDG_CONFIG_HOME}/x11/xinitrc"
つまり、$XDG_CONFIG_HOME
2番目の例のように、変数を個別に参照することと、次のように使用することの違いは何ですか${XDG_CONFIG_HOME:-$HOME/.config}
?変数${XDG_CONFIG_HOME}
で変数を参照する前にすでに変数値を設定しているため、パスを繰り返すことは重複しているようですXINITRC
。
ベストアンサー1
バラよりinfo zsh 'Parameter Expansion'
:
${NAME-WORD}
${NAME:-WORD}
NAMEが設定されている場合、または2番目の形式で空でない場合はその値が置き換えられ、それ以外の場合はWORDに置き換えられます。 2番目の形式ではNAMEを省略できます。この場合は常にWORDが代わりに使用されます。
これはBourneシェル(70年代後半から)から継承された機能であり、すべての同様のBourneまたはPOSIXシェルに存在します(省略の最後の部分を除く)。名前これはzsh
特定の拡張子です。)
null 以外の場合は変数の値に展開され、それ以外の場合は${XDG_CONFIG_HOME:-$HOME/.config}
変数の値に展開されます。XDG_CONFIG_HOME
$HOME/.config
上記で空でないことが保証されていると定義されている点を考慮すると、XDG_CONFIG_HOME
本当に重複します。