@, - และ + ทำอะไรเป็นคำนำหน้าของบรรทัดสูตรใน Make


172

ในคู่มือ GNU Makefile นั้น กล่าวถึงคำนำหน้าเหล่านี้

หากมีการจัดเตรียม. ONESHELL จะมีการตรวจสอบเฉพาะบรรทัดแรกของสูตรสำหรับอักขระนำหน้าพิเศษ ('@', '-' และ '+')

คำนำหน้าเหล่านี้ทำอะไรและพวกเขาพูดถึงที่ไหน

คำตอบ:


235

พวกเขาควบคุมพฤติกรรมของการทำสำหรับบรรทัดคำสั่งที่ติดแท็ก:

  • @ ไม่แสดง 'echo' ปกติของคำสั่งที่เรียกใช้งาน

  • - หมายถึงเพิกเฉยสถานะการออกของคำสั่งที่ดำเนินการ (โดยปกติสถานะการออกที่ไม่เป็นศูนย์จะหยุดส่วนหนึ่งของการสร้าง)

  • +หมายถึง 'รันคำสั่งนี้ภายใต้make -n' (หรือ 'make -t' หรือ 'make -q') เมื่อคำสั่งไม่ได้ดำเนินการตามปกติ ดูข้อมูลจำเพาะ POSIX สำหรับmakeและ§9.3ของคู่มือทำ GNU

+สัญกรณ์เป็นลักษณะทั่วไป (POSIX-มาตรฐาน) ของพฤตินัย (ไม่ได้มาตรฐาน) กลไกบรรทัดคำสั่งที่มี${MAKE}หรือจะดำเนินการภายใต้$(MAKE)make -n

( @มีการกล่าวถึงใน§5.2ของคู่มือทำ GNU; -อธิบายไว้ใน§5.5และ§5.7.1กล่าวถึงการใช้งาน+)


41

@ป้องกันไม่ให้บรรทัดคำสั่งสะท้อนออกไปที่คอนโซล คุณสามารถทำได้ทั่วโลกด้วย-sหรือ--keep-silent

-บอกให้ทำต่อไปแม้ว่าคำสั่งจะล้มเหลวด้วยเหตุผลบางอย่าง คุณสามารถทำได้ทั่วโลกผ่านการ-iตั้งค่าสถานะ (หรือ--ignore-errors)

+ฉันไม่คุ้นเคยก่อนที่คุณจะถาม ในฐานะที่อยู่ใกล้กับที่ผมสามารถบอกมันขัดแย้งกับผลกระทบของ-n, -tและ-qทั้งหมดซึ่งโดยทั่วไปจะบอกให้ไม่จริงเรียกใช้คำสั่ง ดังนั้นแถว+ที่ด้านหน้าจะวิ่งต่อไป

ถ้าคุณอ่านอย่างเป็นทางการให้ Gnu คู่มือพวกเขาจะกล่าวถึงในบทที่ 5 ในสำเนาเก่าของฉันของคู่มือที่เป็นบทที่ "คำสั่ง" แต่ตอนนี้ดูเหมือนคำว่า "สูตร"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.