จาก ผู้ชายทุบตี:
-c หากมีอ็อพชัน -c อยู่ คำสั่งจะถูกอ่านจากไฟล์
command_string อาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกแรก หากมีข้อโต้แย้งâ
ment หลัง command_string อาร์กิวเมนต์แรกจะเป็นâ
ลงชื่อเป็น $0 และอาร์กิวเมนต์ที่เหลือถูกกำหนดให้กับ
พารามิเตอร์ตำแหน่ง
ใน bash -c echo $SHELL, "อาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกแรก" เป็น เสียงสะท้อน, ในขณะที่ $เปลือก ถูกขยายโดยเชลล์แบบโต้ตอบปัจจุบันของคุณและส่งต่อไปยัง ทุบตี เป็นพารามิเตอร์ตำแหน่ง $0. เนื่องจาก เสียงสะท้อน ไม่มีข้อโต้แย้ง นั่นเอง, ทุบตี -c เสียงสะท้อน พิมพ์สตริงว่าง ในขณะเดียวกัน, $0 ถูกตั้งค่าเป็น /ถัง/ทุบตี แต่เพิกเฉย
คุณสามารถทำได้ทั้งนี้ขึ้นอยู่กับสิ่งที่คุณพยายามทำ
ทุบตี -c 'echo $SHELL'
ซึ่งผ่านไป สะท้อน $SHELL เช่น command_string ไปยัง bash shell แบบไม่โต้ตอบ (ส่งออกค่าของเชลล์ที่ไม่ใช่แบบโต้ตอบ $เปลือก), หรือ
bash -c 'echo $0' $SHELL
ซึ่งผ่าน (การขยายตัวของ) เชลล์แบบโต้ตอบ $เปลือก ไปยัง bash shell แบบไม่โต้ตอบเป็น $0แล้วสะท้อนค่าของมัน