zsh パラメータ拡張 ${1-$PWD} に数値があるのはなぜですか。

zsh パラメータ拡張 ${1-$PWD} に数値があるのはなぜですか。

現在、スクリプトに基づくスクリプトがあります。その人がなぜそこにいるのか理解できませんtypeset result part dir=${1-$PWD}

ただ書くと同じ結果が出ますdir=$PWD。タイポグラフィ${1-$PWD}dir$PWD

ベストアンサー1

これは中括弧拡張ではなく、標準パラメータ拡張演算子(70年代のBourneシェルにさかのぼります)です。

${1-$PWD}

$1設定されると($#厳密に0より大きい場合)、空の文字列まで(最初の位置引数)の値に展開され、$PWDそれ以外の場合は変数の内容に展開されます。

ランニング:

info zsh 'Parameter Expansion'

もっと学ぶ。

typesetBourneでもPOSIXでもなく、具体的でもzshありません。これはKornシェル(80年代初頭)から来ており、変数の範囲を現在の関数に制限するために使用されます。これbashはにも表示されますyash

ランニング:

info zsh typeset

もっと学ぶ。

おすすめ記事