Tôi thường muốn cung cấp dữ liệu chuỗi tương đối ngắn (có thể là một vài dòng) cho các chương trình dòng lệnh chỉ chấp nhận đầu vào từ các tệp (ví dụ: wdiff) theo kiểu lặp lại. Chắc chắn tôi có thể tạo một hoặc nhiều tệp tạm thời, lưu chuỗi ở đó và chạy lệnh với tên tệp làm tham số. Nhưng có vẻ như quy trình này sẽ rất kém hiệu quả nếu dữ liệu thực sự được ghi vào đĩa và nó cũng có thể gây hại cho đĩa hơn mức cần thiết nếu tôi lặp lại quy trình này nhiều lần, ví dụ nếu tôi muốn cung cấp một dòng văn bản dài tập tin để wdiff. Có một cách được khuyến nghị để phá vỡ điều này, giả sử bằng cách sử dụng các tệp giả như ống để lưu trữ dữ liệu tạm thời mà không thực sự ghi nó vào đĩa (hoặc chỉ ghi khi vượt quá độ dài quan trọng). Lưu ý rằng wdiff có hai đối số và,wdiff <"text"
.
xargs
sẽ làm cho các dòng đầu vào từ các đối số chuỗi tệp cho lệnh. Nhưng tôi cần điều ngược lại.
echo $data_are_here | dumb_program
vậy?
xargs
?