เนื่องจาก pushd เป็นฟังก์ชัน builtin ใน bash ดังนั้นจึงไม่เกี่ยวข้องกับตัวแปร PATH และยังไม่รองรับ / bin / sh (ซึ่งใช้โดยค่าเริ่มต้นโดย make คุณสามารถเปลี่ยนแปลงได้โดยการตั้งค่า SHELL (แม้ว่าจะไม่ทำงานโดยตรง (test1))
คุณสามารถเรียกใช้คำสั่งทั้งหมดแทนbash -c "..."ได้ ซึ่งจะทำให้คำสั่งรวมถึง pushd / popd ทำงานในสภาพแวดล้อม bash (test2)
SHELL = /bin/bash
test1:
        @echo before
        @pwd
        @pushd /tmp
        @echo in /tmp
        @pwd
        @popd
        @echo after
        @pwd
test2:
        @/bin/bash -c "echo before;\
        pwd; \
        pushd /tmp; \
        echo in /tmp; \
        pwd; \
        popd; \
        echo after; \
        pwd;"
เมื่อเรียกใช้ make test1 และทำการ test2 จะให้สิ่งต่อไปนี้:
prompt>make test1
before
/download/2011/03_mar
make: pushd: Command not found
make: *** [test1] Error 127
prompt>make test2
before
/download/2011/03_mar
/tmp /download/2011/03_mar
in /tmp
/tmp
/download/2011/03_mar
after
/download/2011/03_mar
prompt>
สำหรับ test1 แม้ว่า bash จะถูกใช้เป็นเชลล์ แต่คำสั่ง / บรรทัดแต่ละคำสั่งในกฎจะรันด้วยตัวเองดังนั้นคำสั่ง pushd จึงทำงานในเชลล์ที่แตกต่างจาก popd
     
              
pushdมันไม่ได้บ่นเกี่ยวกับการดวลจุดโทษก็บ่นว่ามันไม่สามารถหา ผลักดันในของคุณ$PATHหรือไม่?