現在、スクリプトに基づくスクリプトがあります。その人がなぜそこにいるのか理解できませんtypeset result part dir=${1-$PWD}
。
ただ書くと同じ結果が出ますdir=$PWD
。タイポグラフィ${1-$PWD}
はdir
?$PWD
ベストアンサー1
これは中括弧拡張ではなく、標準パラメータ拡張演算子(70年代のBourneシェルにさかのぼります)です。
${1-$PWD}
$1
設定されると($#
厳密に0より大きい場合)、空の文字列まで(最初の位置引数)の値に展開され、$PWD
それ以外の場合は変数の内容に展開されます。
ランニング:
info zsh 'Parameter Expansion'
もっと学ぶ。
typeset
BourneでもPOSIXでもなく、具体的でもzsh
ありません。これはKornシェル(80年代初頭)から来ており、変数の範囲を現在の関数に制限するために使用されます。これbash
はにも表示されますyash
。
ランニング:
info zsh typeset
もっと学ぶ。