มีการใช้@
ที่นี่ที่ไม่เกี่ยวข้องสามอย่าง
ใน$@
ตัวละคร@
เป็นชื่อของตัวแปรอัตโนมัติที่สามารถใช้ในกฎ ค่าของตัวแปรนั้นคือเป้าหมายที่กฎกำลังสร้าง
เมื่อ@
ใช้ที่จุดเริ่มต้นของบรรทัดสูตร (คำสั่ง) หลังจากอักขระแท็บจะทำให้คำสั่งไม่ถูกพิมพ์เมื่อกำลังจะถูกเรียกใช้
ตัวละคร@
ที่อื่นไม่ได้พิเศษ
ดังนั้นในตัวอย่างของคุณเพื่อสร้างprogram
:
file
ฟังก์ชั่นถูกเรียก มันเขียนอ้างอิงของเป้าหมาย (ที่$^
ตัวแปรอัตโนมัติ) program.in
ไปยังแฟ้ม
คำสั่งใดก็ตามที่ถูกเก็บไว้ในตัวแปรCMD
จะถูกดำเนินการโดยมีพารามิเตอร์ที่เก็บไว้ในตัวแปรCMDFLAGS
รวมถึงพารามิเตอร์@program.in
เพิ่มเติม สิ่งนี้จะขึ้นอยู่กับสิ่งที่CMD
เป็น
คำสั่งrm program.in
ถูกเรียกใช้งานโดยไม่พิมพ์ออกมาก่อน
คำสั่งสองสามข้อจะปฏิบัติต่อพารามิเตอร์ที่ขึ้นต้นด้วย@
เช่นระบุไฟล์ที่จะอ่านพารามิเตอร์เพิ่มเติม นี่คือระเบียบปฏิบัติของ DOS ซึ่งเกิดขึ้นเนื่องจาก DOS มีข้อ จำกัด ที่เข้มงวดเกี่ยวกับความยาวบรรทัดคำสั่งและไม่มีทางที่จะแก้ไขเอาต์พุตของคำสั่งลงในบรรทัดคำสั่งได้ มันเป็นเรื่องแปลกในโลก Unix เนื่องจาก Unix ไม่มีข้อ จำกัด เหล่านี้ ผลกระทบของสูตรจึงมีแนวโน้มเช่นเดียวกับ
$(CMD) $(CMDFLAGS) $(OBJECTS)
>$@.in
ใช้เป็นโหมดไฟล์ ... แต่มันมีประโยชน์ในแบบของตัวเอง .. ขอบคุณ cuonglm ...