เชลล์เชิงประวัติบางตัวใช้ตัวแยกวิเคราะห์แบบง่าย ๆ ที่อาจสับสนโดยสิ่ง[ -n = "" ]
ที่ตัวถูกดำเนินการตัวแรก=
ดูเหมือนกับตัวดำเนินการและจะแยกวิเคราะห์สิ่งนี้เป็น[ -n = ]
สาเหตุของข้อผิดพลาดทางไวยากรณ์ ใน[ "x$1" = x"" ]
ที่x
มั่นใจคำนำหน้าว่าx"$1"
ไม่อาจมีลักษณะเช่นผู้ประกอบการและดังนั้นวิธีเดียวที่เปลือกสามารถแยกการทดสอบนี้คือการรักษา=
เป็นผู้ประกอบการไบนารี
เชลล์ที่ทันสมัยทั้งหมดและแม้กระทั่งเชลล์ที่เก่าที่สุดส่วนใหญ่ยังทำงานอยู่ให้ปฏิบัติตามกฎ POSIXซึ่งกำหนดว่าการทดสอบการแสดงออกทั้งหมดถึง 4 คำจะถูกวิเคราะห์อย่างถูกต้อง ดังนั้น[ -z "$1" ]
วิธีที่เหมาะสมในการทดสอบ$1
คือถ้าว่างเปล่าและ[ "$x" = "$y" ]
เป็นวิธีที่เหมาะสมในการทดสอบความเท่าเทียมกันของตัวแปรสองตัว
แม้บางหอยปัจจุบันสามารถทำให้เกิดความสับสนกับการแสดงออกอีกต่อไปและการแสดงออกไม่กี่คลุมเครือจริงเพื่อหลีกเลี่ยงการใช้-a
และ-o
ผู้ประกอบการที่จะสร้างการทดสอบแบบบูลอีกต่อไปและใช้แทนสายที่แยกต่างหากเพื่อ[
และเปลือกของตัวเอง&&
และ||
ผู้ประกอบการบูลีน
sh
Unices เชิงพาณิชย์บางส่วนที่ยังมีปัญหาอยู่ ดูรายละเอียดที่นี่