Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีสร้างสคริปต์เทมเพลต TXT ใน BASH

หากคุณพบว่าตัวเองสร้างข้อความคล้ายกันในเทอร์มินัลวันละหลายครั้ง ทำไมไม่ทำให้กระบวนการง่ายขึ้นและประหยัดเวลาโดยการสร้างสคริปต์เทมเพลต .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