IFS=.- parts=( $=file )에 대한 ZSH 문서

IFS=.- parts=( $=file )에 대한 ZSH 문서

ZSH의 이 기능은 (제 생각에) 답변에 사용되었습니다여러 문자를 구분 기호로 사용하여 문자열을 분할하기 위한 ZSH 구문

또는 $=var를 사용하여 IFS 분할을 사용할 수 있습니다.

IFS=.-
parts=( $=file )

ZSH 문서에서 이 구성의 이름을 지적할 수 있습니까?

답변1

다음과 같은 의미 IFS: "가변 인덱스” → “IFS", "IFS, 사용", "IFS, 사용", "IFS, 사용".

첫 번째 "사용법" 링크는 문서를 가리키며 $=NAME, zsh 구문에 익숙하지 않은 경우 찾기가 어렵습니다. $시작매개변수 확장. 매개변수 확장은 를 포함하여 다양한 형태를 취할 수 있습니다. 부분은 접두사/접미사 제거, 패턴 대체, 기본값 주입 등을 수행하는 데 사용되는 매개변수 이름 또는 다양한 접미사 중 하나가 있는 매개변수 이름일 수 있습니다. 메타 변수가 처음 나타날 때 (문서에서) 덜 명확한 방식으로 문서화되어 있습니다. 또한 매개변수 이름만 있는 경우 중괄호는 선택사항입니다. 이는 및 문서에 언급되어 있지만 등에 적용됩니다.${=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.

관련 정보