에서 단어 분리의 역할에 대해 혼란스러워지고 zsh
있습니다. C, Python 또는 MATLAB으로 프로그래밍 할 때이 개념에 노출되지 않았으므로 이것이 단어 분할이 쉘 프로그래밍에 특정한 것으로 보이는 이유에 대한 관심을 불러 일으켰습니다.
이전에이 사이트와 다른 사이트에서 단어 분리에 대해 읽었지만 개념에 대한 명확한 설명을 찾지 못했습니다. Wikipedia에는 단어 분리에 대한 정의가 있지만 Unix 쉘에 어떻게 적용되는지에 대한 언급이없는 것 같습니다.
다음은 제가 혼동하는 예입니다 zsh
.
에서 Z 쉘 자주 묻는 질문 , 나는 다음을 읽어
3.1 : 왜 않는
$var
곳에var="foo bar"
내가 기대하지?대부분의 Bourne-shell 파생 상품에서와 같이 여러 단어 변수
var="foo bar"
는 명령에 전달되거나for foo in $var
루프 에서 사용될 때 단어로 분할됩니다 . 기본적으로 zsh에는 해당 동작이 없습니다. 변수는 그대로 유지됩니다. (이것은 버그가 아닙니다! 아래를 참조하십시오.) 옵션SH_WORD_SPLIT
은 호환성을 제공하기 위해 존재합니다.
그러나 Z Shell Manual 에서 다음을 읽습니다.
SH_WORD_SPLIT (-y) <K> <S>
인용되지 않은 매개 변수 확장에서 필드 분할이 수행되도록합니다. 이 옵션 은 단어 분리와 관련이 없습니다 . (파라미터 확장 참조)
단어 분리와 관련SH_WORD_SPLIT
이 없는 이유는 무엇 입니까? 이것이 무엇에 관한 것인지 정확하게 단어 분리하지 않습니까?
"word1 word2 word3"
목록 / 배열로 변환된다고 말하는 것이 맞"word1" "word2" "word3"
습니까? 또한 zsh에서 특정 혼란 소스로 OP를 업데이트했습니다.