หากคุณพบว่าตัวเองสร้างข้อความคล้ายกันในเทอร์มินัลวันละหลายครั้ง ทำไมไม่ทำให้กระบวนการง่ายขึ้นและประหยัดเวลาโดยการสร้างสคริปต์เทมเพลต .txt สำหรับมัน? หาก聽起來น่าสนใจ ให้เปิดเทอร์มินัล เลือก text editor โปรด และเริ่มกันเลย!
สร้างสคริปต์เทมเพลตใหม่
สร้างสคริปต์ bash ใหม่ด้วยวิธีที่คุณชอบ เราใช้ nano editor ในเทอร์มินัลเพื่อสร้างไฟล์ชื่อ "MTE_template.sh" ในโฟลเดอร์ "Scripts" ที่เรามีในไดเรกทอรี home:
nano MTE_template.sh
กำหนดพารามิเตอร์ของคุณ
เปิดไฟล์ใน editor โปรด ของคุณ ที่ส่วนบนสุด ให้ใส่ intro ทั่วไปที่กำหนดว่าเป็น bash script:
#!/bin/sh
เพื่อให้สะอาดและอ่านง่าย ให้ใส่บรรทัดที่คอมเมนต์ไว้ พร้อมหัวข้อสำหรับสิ่งที่จะตามมา
ส่วน "สิ่งที่จะตามมา" คือชุดพารามิเตอร์ที่เราต้องการกำหนดในเทมเพลตของเรา เมื่อสคริปต์เทมเพลตของเราเสร็จสมบูรณ์ เราจะสามารถส่งพารามิเตอร์เหล่านั้นให้มันเพื่อนำไปแทรกในข้อความของเรา
เราใส่ "Our parameters" เป็นหัวข้อในบรรทัดที่คอมเมนต์ไว้ ดังนี้:
#Our parameters
ต่อไป เรากำหนดพารามิเตอร์ 3 ตัว คือ "SITE," "AUTHOR," และ "CONTACT" โดยแมปไปยังตัวแปรที่มีหมายเลข 3 ตัว:
SITE=$1 AUTHOR=$2 CONTACT=$3
คุณสามารถกำหนดพารามิเตอร์ที่แตกต่างกัน – หรือเพิ่มเติม – ด้วยวิธีเดียวกันได้
สร้างเทมเพลตของคุณ
เมื่อพารามิเตอร์เทมเพลตของเราพร้อมแล้ว ก็ถึงเวลาสร้างเทมเพลตข้อความจริง
เหมือนเดิม เราเริ่มด้วยบรรทัดที่คอมเมนต์ไว้เป็นหัวข้อ ดังนี้:
#Template
นี่คือสิ่งที่เราเพิ่มลงในเทมเพลต:
- เรา "แซนด์วิช" เทมเพลตของเราระหว่างสองบรรทัด
- บรรทัดแรกอ่าน
cat << EOFและพูดง่ายๆ ว่า "ทุกอย่างที่ตามมา (AKA: เทมเพลตจริงของเรา) จนกว่าจะเจอEOFควรถือเป็นอินพุทเดียว" - บรรทัดที่สองคือ
EOFในกรณีนี้คือ "codeword" ที่ทำให้ลูปคำสั่งcatหยุดและจบเทมเพลต
cat << EOF Welcome to a Bash-generated TXT template for $SITE. Created by $AUTHOR. Contact me at $CONTACT. EOF
เทมเพลตที่มีประโยชน์มากกว่า อาจมาในรูปแบบอีเมล คุณสามารถกำหนดพารามิตร "$NAME" และ "$TASK" แล้วสร้างเทมเพลตสำหรับอีเมลแบบนี้:
cat << EOF Hello $NAME, I just wanted to get back to you regarding $TASK. Would you be so kind as to update me on any changes? Best regards, My Name EOF
หลังจากเสร็จแล้ว ให้บันทึกการแก้ไข (Ctrl + O) และออก (Ctrl + X) จากโปรแกรม
ต่อไป ทำให้สคริปต์ของคุณ executable ด้วย:
chmod u+x MTE_template.sh
ด้วยวิธีนี้ คุณจะสามารถใช้ชื่อของสคริปต์เองเพื่อสร้างเอกสารใหม่ได้
ทดสอบรัน
รันสคริปต์ของคุณพร้อมพารามิเตอร์ที่คุณกำหนด การทดสอบของเราเป็นแบบนี้:
./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com
ส่วนแรกคือชื่อสคริปต์ของเรา "Make_Tech_Easier" พารามิเตอร์แรก "Ody" ตัวที่สอง และ "mymail@mailserver.com" ตัวที่สาม
สังเกตว่าเราใช้ underscore (_) เพื่อจับคำ "make tech easier" รวมกัน หากคุณต้องการใช้ space แทน ให้เพิ่มเครื่องหมายคำพูด (เช่น "Make Tech Easier")
สร้างเอกสาร
กับสคริปต์ที่พร้อมแล้ว คุณสามารถใช้มันเป็นเทมเพลตสร้างเอกสารใหม่ได้ ขอบคุณพลังของ redirects
เพื่อทำเช่นนั้น ให้รันเหมือนตอนทดสอบ แต่หลังจากกำหนดพารามิเตอร์แล้ว ให้ใส่ > path/to/file/filename.txt ในกรณีของเรา คำสั่งเป็น:
./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com > /home/ducklord/Documents/new_MTE_note.txt
ด้วยวิธีนี้ คุณสั่งให้เทมเพลตส่งผลลัพธ์ไปที่ไฟล์ที่กำหนดแทนเทอร์มินัล สำหรับผลลัพธ์จริง คุณสามารถตรวจสอบจากภาพต่อไปนี้
ดูไม่ง่ายเลยหรอ?
แม้จะดูซับซ้อน แต่หากทำตามคำแนะนำข้างต้น จริงๆ แล้วมันง่ายมาก มันยังมีประโยชน์มากหากคุณบ่อยครั้งที่ต้องสร้างข้อความจากเทมเพลตเดียวกัน ตัวอย่างเช่น คุณสามารถทำให้การสร้างอีเมลประจำ, หน้าข้อมูลผลิตภัณฑ์ และอื่นๆ อัตโนมัติได้ โดยคำหรือวลีเดียวกันอาจปรากฏหลายครั้งในข้อความเดียวกัน
หรือคุณอาจไปไกลกว่านี้ อ่านเพิ่มเติม และใช้แนวทางเดียวกันสร้างเทมเพลตสร้างโค้ด ที่อาจช่วยให้คุณตั้งค่าไฟล์ HTML ที่มีโครงสร้างเว็บไซต์ทั้งหมดด้วยคำสั่งเดียว หรือรัน bash script as root ระหว่าง startup