สิ่งที่คุณเขียนในบรรทัดแรกดูเหมือนว่าคำสั่งทั้งหมด (รายการ“ (คำสั่งผสม)” ในคำศัพท์เชลล์) ดังนั้นเชลล์จึงถือว่าเป็นคำสั่งที่สมบูรณ์ เนื่องจากมีเครื่องหมายเริ่มต้นที่นี่เอกสาร ( <<END
) เชลล์จึงอ่านเนื้อหาเอกสารที่นี่แล้วเริ่มคำสั่งใหม่ หากคุณต้องการวาง here-document ไว้ตรงกลางของรายการคุณต้องระบุเชลล์ที่รายการนั้นยังไม่เสร็จสิ้น นี่คือสองวิธี
mpirun -np 6 ./laplace <<END |
…
END
tail -n 1 > output
{ mpirun -np 6 ./laplace <<END
…
END
} | tail -n 1 > output
หรือแน่นอนคุณสามารถตรวจสอบให้แน่ใจว่าคำสั่งนั้นพอดีในบรรทัดแรก
mpirun -np 6 ./laplace <<END | tail -n 1 > output
…
END
กฎที่ต้องจำคือเนื้อหาของเอกสารที่นี่เริ่มต้นหลังจากบรรทัดใหม่ที่ไม่ได้ประกาศบรรทัดแรกหลังจาก<<END
ตัวบ่งชี้ ตัวอย่างเช่นต่อไปนี้เป็นอีกวิธีหนึ่งในการเขียนสคริปต์นี้:
mpirun -np 6 ./laplace <<END \
| tail -n $(
…
END
echo 1) > output