Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Cyrub23
•
ติดตาม
14 ต.ค. เวลา 23:32 • วิทยาศาสตร์ & เทคโนโลยี
ลินุกซ์พื้นฐาน : การแทนที่คำสั่ง (Command Substitution)
ความหมายของการแทนที่คำสั่ง
การแทนที่คำสั่ง (Command Substitution) คือกระบวนการที่เรานำ ผลลัพธ์ของคำสั่งหนึ่งมาใช้เป็นส่วนหนึ่งของคำสั่งอื่น ในบรรทัดเดียวกัน โดยไม่ต้องพิมพ์ผลลัพธ์นั้นเองให้ยุ่งยาก
สิ่งนี้ช่วยให้เราทำงานแบบอัตโนมัติและมีประสิทธิภาพมากขึ้น โดยเฉพาะเมื่อเขียนสคริปต์หรือคำสั่งที่ต้องพึ่งค่าจากคำสั่งอื่น
รูปแบบการใช้งาน
การแทนที่คำสั่งในลินุกซ์ทำได้ 2 วิธีหลัก คือ
1. ใช้เครื่องหมาย backquote (...)
`คำสั่ง`
ตัวอย่างเช่น
mkdir `date +%F`
ในที่นี้ date +%F จะถูกประมวลผลก่อน แล้วแทนค่าด้วยผลลัพธ์ เช่น 2025-10-11
จากนั้นคำสั่งที่ระบบจะทำจริงคือ
mkdir 2025-10-11
ซึ่งจะสร้างไดเรกทอรีชื่อ “2025-10-11”
2. ใช้รูปแบบใหม่ $(...)
$(คำสั่ง)
ตัวอย่างเช่น
mkdir $(date +%F)
วิธีนี้ให้ผลเหมือนกันกับแบบ backquote แต่ อ่านง่ายกว่าและซ้อนคำสั่งได้สะดวกกว่า
เช่น
echo $(basename $(pwd))
จะพิมพ์ชื่อโฟลเดอร์ปัจจุบันโดยไม่ต้องระบุ path
ตัวอย่างการใช้งานจริง
ตัวอย่างที่ 1 — สร้างโฟลเดอร์ตามวันที่ปัจจุบัน
$ mkdir $(date +%F)
$ ls -l
drwxrwxr-x 2 user user 4096 Oct 11 10:00 2025-10-11/
โฟลเดอร์ที่สร้างจะมีชื่อเป็น “ปี-เดือน-วัน” โดยอัตโนมัติ
ตัวอย่างที่ 2 — บันทึกผลลัพธ์คำสั่งไว้ในไฟล์
$ (cal; date) > result.txt
คำสั่งนี้จะรัน cal เพื่อแสดงปฏิทิน และ date เพื่อแสดงวันที่ปัจจุบัน แล้วนำผลลัพธ์ทั้งสองมาเก็บในไฟล์ result.txt
หมายเหตุสำคัญ
เครื่องหมาย backquote (`) มักคล้ายกับ single quote (‘) มาก ควรระวังไม่ให้พิมพ์ผิด
รูปแบบ $(...) เป็นรูปแบบที่นิยมในปัจจุบัน เพราะอ่านง่ายกว่าและทำงานได้ใน bash shell
การใช้ backquote (...) จะยังใช้ได้ในเชลล์รุ่นเก่า เช่น Bourne shell (sh)
สรุป
การแทนที่คำสั่งเป็นพื้นฐานสำคัญของการใช้งานเชลล์ในลินุกซ์ เพราะช่วยให้คำสั่งมีความยืดหยุ่นและอัตโนมัติมากขึ้น ไม่ว่าจะใช้ในการสร้างโฟลเดอร์ บันทึกข้อมูล หรือเขียนสคริปต์ขั้นสูง การเข้าใจรูปแบบนี้จะทำให้คุณสามารถเขียนคำสั่งที่ซับซ้อนและทรงพลังได้ง่ายขึ้น
ฝากติดตามซีรีส์การใช้ Linux ขั้นพื้นฐานด้วยนะครับ
ติดตามตอนต่อไปได้ที่ - >
https://www.blockdit.com/series/68dc9f8ccfbe2a355b6c87d6
linux
เทคโนโลยี
ความรู้รอบตัว
บันทึก
ดูเพิ่มเติมในซีรีส์
Linux พื้นฐาน
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย