สมมติว่าฉันต้องการเรียกใช้คำสั่งผ่าน Bash ดังนี้:
/bin/bash -c "ls -l"
ตามหน้า Bash man ฉันก็สามารถเรียกใช้เช่นนี้:
# don't process arguments after this one
# | pass all unprocessed arguments to command
# | |
# V V
/bin/bash -c ls -- -l
ยกเว้นดูเหมือนว่าจะไม่ทำงาน (ดูเหมือนจะถูกละเว้น) ฉันกำลังทำอะไรผิดหรือฉันตีความหน้าคนผิดหรือเปล่า?
คำพูดที่เกี่ยวข้องจากมนุษย์:
หากมีอ็อพชัน -c อยู่คำสั่งจะอ่านจากสตริง หากมีข้อโต้แย้งหลังจากสตริงพวกเขาจะถูกกำหนดให้กับพารามิเตอร์ตำแหน่งเริ่มต้นด้วย $ 0
และ
เอ - ส่งสัญญาณการสิ้นสุดของตัวเลือกและปิดการใช้งานการประมวลผลตัวเลือกเพิ่มเติม อาร์กิวเมนต์ใด ๆ หลัง - จะถูกใช้เป็นชื่อไฟล์และอาร์กิวเมนต์