Tôi đang bối rối về vai trò chia tách vai trò trong zsh
. Tôi chưa được tiếp xúc với khái niệm này khi lập trình bằng C, Python hoặc MATLAB và điều này đã kích thích sự quan tâm của tôi về lý do tại sao việc tách từ dường như là một cái gì đó cụ thể đối với lập trình shell.
Tôi đã đọc về việc chia từ trên trang này và các trang khác trước đây, nhưng chưa tìm thấy lời giải thích rõ ràng về khái niệm này. Wikipedia có định nghĩa về phân tách từ nhưng dường như không có tài liệu tham khảo về cách áp dụng cho hệ vỏ Unix.
Đây là một ví dụ về sự nhầm lẫn của tôi trong zsh
:
Trong Câu hỏi thường gặp về Z Shell , tôi đọc phần sau:
3.1: Tại sao
$var
ở đâuvar="foo bar"
không làm những gì tôi mong đợi?Trong hầu hết các dẫn xuất shell Bourne, các biến nhiều từ như
var="foo bar"
được chia thành các từ khi được truyền cho một lệnh hoặc được sử dụng trong mộtfor foo in $var
vòng lặp. Theo mặc định, zsh không có hành vi đó: biến vẫn còn nguyên. (Đây không phải là một lỗi! Xem bên dưới.) Tùy chọnSH_WORD_SPLIT
tồn tại để cung cấp khả năng tương thích.
Tuy nhiên, trong Hướng dẫn sử dụng Z Shell , tôi đọc phần sau:
SH_WORD_SPLIT (-y) <K> <S>
Nguyên nhân phân tách trường được thực hiện trên các mở rộng tham số không được trích dẫn. Lưu ý rằng tùy chọn này không liên quan gì đến việc tách từ. (Xem Mở rộng tham số.)
Tại sao nó lại nói rằng SH_WORD_SPLIT
có gì để làm với tách từ? Không phải là chia tách chính xác những gì này là tất cả về?
"word1 word2 word3"
thành các danh sách / mảng của biểu mẫu"word1" "word2" "word3"
? Tôi cũng đã cập nhật OP với một nguồn gây nhầm lẫn cụ thể trong zsh.