6
เหตุใด $$ จึงส่งคืนรหัสเดียวกันกับกระบวนการหลัก
ฉันมีปัญหากับ Bash และฉันไม่รู้ว่าทำไม ภายใต้เปลือกฉันป้อน: echo $$ ## print 2433 (echo $$) ## also print 2433 (./getpid) ## print 2602 "getpid" เป็นโปรแกรม C เพื่อรับ pid ปัจจุบันเช่น: int main() { printf("%d", (int)getpid()); return 0; } สิ่งที่ทำให้ฉันสับสนคือ: ฉันคิดว่า "(คำสั่ง)" เป็นกระบวนการย่อย (ฉันใช่มั้ย) และฉันคิดว่า pid ของมันควรจะแตกต่างจาก pid ของผู้ปกครอง แต่พวกเขาเหมือนกันทำไม ... เมื่อฉันใช้โปรแกรมของฉันเพื่อแสดง pid ระหว่างวงเล็บ, pid ที่มันแสดงนั้นแตกต่างกันใช่ไหม? …