ZSH의 이 기능은 (제 생각에) 답변에 사용되었습니다여러 문자를 구분 기호로 사용하여 문자열을 분할하기 위한 ZSH 구문
또는 $=var를 사용하여 IFS 분할을 사용할 수 있습니다.
IFS=.- parts=( $=file )
ZSH 문서에서 이 구성의 이름을 지적할 수 있습니까?
답변1
다음과 같은 의미 IFS
: "가변 인덱스” → “IFS
", "IFS
, 사용", "IFS
, 사용", "IFS
, 사용".
첫 번째 "사용법" 링크는 문서를 가리키며 $=NAME
, zsh 구문에 익숙하지 않은 경우 찾기가 어렵습니다. $
시작매개변수 확장. 매개변수 확장은 를 포함하여 다양한 형태를 취할 수 있습니다. 부분은 접두사/접미사 제거, 패턴 대체, 기본값 주입 등을 수행하는 데 사용되는 매개변수 이름 또는 다양한 접미사 중 하나가 있는 매개변수 이름일 수 있습니다. 메타 변수가 처음 나타날 때 (문서에서) 덜 명확한 방식으로 문서화되어 있습니다. 또한 매개변수 이름만 있는 경우 중괄호는 선택사항입니다. 이는 및 문서에 언급되어 있지만 등에 적용됩니다.${=spec}
spec
spec
${#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.