IFS=.- parts=( $=file ) の ZSH ドキュメント

IFS=.- parts=( $=file ) の ZSH ドキュメント

ZSHのこの機能は(私の考えでは)答えに使用されました複数の文字を区切り文字として使用して文字列を分割するためのZSH構文

または、$ = varを使用してIFS分割を使用することもできます。

IFS=.-
parts=( $=file )

ZSHドキュメントでこの設定の名前を指摘できますか?

答え1

次の意味IFS:可変インデックス「→」IFS「、」IFS、使用「、」IFS、使用「、」IFS、使用」。

最初の「使用法」リンクは文書を指し$=NAME、zsh構文に慣れていない場合は見つけるのが難しいです。$スタートパラメータ拡張。パラメータ拡張は、を含むさまざまな形式を取ることができます。部分は、プレフィックス/サフィックスの削除、パターン置換、デフォルト値の注入などを実行するために使用されるパラメータ名、またはさまざまなサフィックスの1つを持つパラメータ名です。メタ変数が最初に表示されるとき(文書内)、あまり明確ではない方法で文書化されています。また、パラメータ名のみがある場合、中括弧はオプションです。これは文書に記載されていますが、等に適用されます。${=spec}specspec${#spec}spec${name}${#spec}${=spec}

答え2

$=file配列割り当ての代わりに尋ねる場合は、parts=( ... )次の記事で説明します。パラメータ拡張セクション(または同等のものman zshexpn)、スタートバーから開始${#spec}

   ${=spec}
          Perform  word splitting using the rules for SH_WORD_SPLIT during
          the evaluation of spec, but regardless of whether the  parameter
          appears  in  double  quotes; if the `=' is doubled, turn it off.
          This forces parameter expansions to be split into separate words
          before  substitution, using IFS as a delimiter.  This is done by
          default in most other shells.

「裸」の形態$=specは次のように説明されています${#spec}

          If the option POSIX_IDENTIFIERS is not set, and spec is a simple
          name, then the braces are optional; this is true even  for  spe‐
          cial  parameters  so  e.g.  $#-  and  $#* take the length of the
          string $- and the array $* respectively.   If  POSIX_IDENTIFIERS
          is set, then braces are required for the # to be treated in this
          fashion.

関連情報