สำหรับลำดับที่ซับซ้อนมากขึ้นของคำสั่งที่คุณควรพิจารณาใช้cat
คำสั่งกับเอกสารที่นี่ รูปแบบพื้นฐานคือ
command > file << END_TEXT
some text here
more text here
END_TEXT
มีพฤติกรรมที่แตกต่างกันสองประการโดยขึ้นอยู่กับว่าจะมีการอ้างอิงป้ายกำกับ END_TEXT หรือไม่
ป้ายกำกับที่ไม่มีเครื่องหมาย : เนื้อหาจะถูกเขียนหลังจากการขยายเชลล์ตามปกติ
ฉลากที่ยกมา : เนื้อหาของเอกสารที่นี่ได้รับการปฏิบัติอย่างแท้จริงโดยไม่มีการขยายเปลือกปกติ
ตัวอย่างเช่นพิจารณาสคริปต์ต่อไปนี้
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
ผลที่ได้คือ
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
และ
$ cat file2
do some commands on "$var1"
and/or "$var2"
หากคุณกำลังส่งคำสั่งเชลล์จากสคริปต์ของคุณคุณอาจต้องการแบบฟอร์มที่ยกมา