Vâng, tiêu chuẩn POSIX phép này. According to the 2008 version:
ở đây-tài liệu sẽ được coi là một từ duy nhất mà bắt đầu sau khi tiếp theo <newline>
và tiếp tục cho đến khi có một dòng chỉ chứa dấu phân cách và một <newline>
, không có <blank>
ký tự ở giữa. Sau đó, tài liệu tại đây bắt đầu, nếu có.
Và bao gồm ví dụ này nhiều "ở đây-tài liệu" trong cùng một dòng:
cat <<eof1; cat <<eof2
Hi,
eof1
Helene.
eof2
Vì vậy, không có vấn đề làm chuyển hướng hoặc ống dẫn. Ví dụ bạn là tương tự như một cái gì đó như thế này:
cat file |
cmd
Và ngữ pháp vỏ (tiếp tục xuống trên trang được liên kết) bao gồm những định nghĩa:
pipe_sequence : command
| pipe_sequence '|' linebreak command
newline_list : NEWLINE
| newline_list NEWLINE
;
linebreak : newline_list
| /* empty */
Vì vậy, một biểu tượng ống có thể được theo sau bởi một thúc- của dòng và vẫn được coi là một phần của một đường ống.
Nguồn
2011-08-12 22:21:20
Tôi đến đây để tìm cách chia tách thành nhiều dòng: 'lệnh dài 1 với nhiều args << EOF | command2 lớn-dài với rất nhiều args'. "Cú pháp lẻ" có vẻ như là cách tốt nhất. – PaulC
Một trường hợp sử dụng thuận tiện cho điều này là khi bạn đang cố gắng chuyển đổi một bảng được phân cách bằng dấu cách thành một bảng được phân cách bằng dấu cách để bạn có thể dán nó vào Bảng tính Google. Bạn sẽ không phải tạo tệp tạm thời. –
Người đầu tiên không làm việc cho tôi trong z-shell. Tôi không thích người thứ 2 vì nó xa lánh | từ lệnh, mất thành ngữ (?) của đường ống vỏ. –