นี่คือรหัสบางอย่างที่ทำสิ่งที่แตกต่างใน POSIX sh และ Bash:
hello &> world
ไม่ว่าจะเป็น "ไม่ถูกต้อง" สำหรับคุณฉันไม่รู้
ในทุบตีก็เปลี่ยนเส้นทางทั้งส่งออกมาตรฐานและข้อผิดพลาดมาตรฐานจากลงในแฟ้มhello worldใน POSIX shมันจะทำงานhelloในพื้นหลังจากนั้นทำการเปลี่ยนเส้นทางที่ว่างเปล่าworldเพื่อตัดทอน (เช่นจะถือว่าเป็น& >)
มีมากมายของกรณีอื่น ๆ ที่ส่วนขยายทุบตีจะทำสิ่งที่พวกเขาเมื่อทำงานภายใต้อยู่bashและจะมีผลกระทบที่แตกต่างกันใน shPOSIX ตัวอย่างเช่นการขยายรั้งเป็นอีกและมันก็ทำงานเหมือนกันภายใต้โหมด POSIX ของ Bash และไม่
ตราบที่ข้อผิดพลาดทางไวยากรณ์คงที่ไป Bash มีทั้งคำสงวน (เช่น[[และtime) ไม่ได้ระบุโดย POSIX เช่นที่[[ xเป็นรหัสเชลล์ POSIX ที่ถูกต้อง แต่ข้อผิดพลาดทางไวยากรณ์ของ Bash และประวัติของข้อบกพร่องที่เข้ากันไม่ได้ POSIXต่างๆเช่นหนึ่งจากคำถามนี้ :
x=$(cat <<'EOF'
`
EOF
)
bash: line 2: unexpected EOF while looking for matching ``'
bash: line 5: syntax error: unexpected end of file
ข้อผิดพลาดทางไวยากรณ์เท่านั้นเป็นคำจำกัดความที่ค่อนข้างอันตรายของ "ไม่ถูกต้อง" สำหรับทุกสถานการณ์ที่มีความสำคัญ แต่ก็มี