เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

การขยายตัว

ทุกครั้งที่เราพิมพ์คำสั่งและกดปุ่ม Enter ทุบตี ดำเนินการหลายขั้นตอนกับข้อความก่อนที่จะดำเนินการตามคำสั่งของเรา เราได้เห็นบางกรณีที่ลำดับอักขระอย่างง่าย เช่น “*” สามารถมีความหมายมากมายต่อเชลล์ได้อย่างไร กระบวนการที่ทำให้เกิดสิ่งนี้เรียกว่า การขยายตัว. ด้วยการขยาย เราป้อนบางสิ่งและมันถูกขยายเป็นอย่างอื่นก่อนที่เชลล์จะดำเนินการกับมัน เพื่อแสดงให้เห็นว่าเราหมายถึงอะไร ลองมาดูที่ เสียงสะท้อน คำสั่ง เสียงสะท้อน เป็นเชลล์บิวด์อินที่ทำงานง่ายมาก มันพิมพ์อาร์กิวเมนต์ข้อความบนเอาต์พุตมาตรฐาน:



[me@linuxbox ~]$ echo นี่คือการทดสอบ

นี่คือการทดสอบ

[me@linuxbox ~]$ echo นี่คือการทดสอบ

นี่คือการทดสอบ


ที่ค่อนข้างตรงไปตรงมา ข้อโต้แย้งใด ๆ ที่ส่งผ่านไปยัง เสียงสะท้อน ได้รับการแสดง ลอง- ตัวอย่างอื่น ๆ :



[me@linuxbox ~]$ เสียงสะท้อน *

เอกสารเดสก์ท็อป ls-output.txt รูปภาพเพลง เทมเพลตสาธารณะ วิดีโอ

[me@linuxbox ~]$ เสียงสะท้อน *

เอกสารเดสก์ท็อป ls-output.txt รูปภาพเพลง เทมเพลตสาธารณะ วิดีโอ


แล้วเกิดอะไรขึ้น? ทำไมไม่ เสียงสะท้อน พิมพ์ “*”? ตามที่เราจำได้จากการทำงานกับไวด์การ์ด อักขระ “*” หมายถึงจับคู่อักขระใดๆ ในชื่อไฟล์ แต่สิ่งที่เราไม่เห็นในการสนทนาครั้งแรกคือวิธีที่เชลล์ทำอย่างนั้น คำตอบง่ายๆ คือ เชลล์ขยาย “*” เป็นอย่างอื่น (ในกรณีนี้ ชื่อของไฟล์ในไดเร็กทอรีการทำงานปัจจุบัน) ก่อน เสียงสะท้อน คำสั่งถูกดำเนินการ เมื่อปุ่ม Enter คือ


เมื่อกด เชลล์จะขยายอักขระที่เข้าเงื่อนไขโดยอัตโนมัติบนบรรทัดคำสั่งก่อนดำเนินการคำสั่ง ดังนั้น เสียงสะท้อน คำสั่งไม่เคยเห็น “*” มีแต่ผลขยาย เมื่อรู้อย่างนี้ก็จะเห็นได้ว่า เสียงสะท้อน ประพฤติตามที่คาดไว้


 

ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: