หากต้องการลบเครื่องหมายสแลชต่อท้ายหากมีอยู่คุณสามารถใช้การขยายพารามิเตอร์การกำจัดส่วนต่อท้ายที่มีอยู่ในเชลล์สไตล์ POSIX ทั้งหมด:
x=${x%/}
มีภาวะแทรกซ้อนเล็กน้อย สิ่งนี้จะลบเครื่องหมายสแลชเดียวเท่านั้นดังนั้นหากคุณเริ่มต้นด้วยa/b/c//
คุณจะยังคงอยู่กับสแลช นอกจากนี้หากเส้นทางเดิมคือ/
คุณจะต้องเก็บไว้ทับ นี่คือวิธีแก้ปัญหาที่ซับซ้อนมากขึ้นซึ่งดูแลกรณีเหล่านี้:
case $x in
*[!/]*/) x=${x%"${x##*[!/]}"};;
*[/]) x="/";;
esac
อีกวิธีหนึ่งคือ ksh หรือ bash หลังจากshopt -s extglob
:
[[ x = *[!/] ]] || x=${x%%*(/)}
โปรดทราบว่าในหลายกรณีมันไม่สำคัญว่าจะมีเครื่องหมายทับ มันจะมีความหมายถ้าอาร์กิวเมนต์เป็นลิงก์สัญลักษณ์ไปยังไดเรกทอรี: ด้วยเครื่องหมายทับท้ายอาร์กิวเมนต์จะกำหนดไดเรกทอรีในขณะที่ไม่มีเครื่องหมายทับท้ายอาร์กิวเมนต์จะกำหนดลิงก์สัญลักษณ์เอง นอกจากนี้ยังมีความสำคัญกับโปรแกรมอื่น ๆ ไม่กี่ตัวอย่างเช่นอาร์กิวเมนต์แหล่งที่มาของrsync
การได้รับการปฏิบัติที่แตกต่างกันขึ้นอยู่กับการปรากฏตัวของต่อท้ายทับ
/
ที่ใดก็ได้คู่เฉือนยกเว้นในช่วงเริ่มต้นจะเทียบเท่ากับการเฉือนเดียวจึงไม่ต้องกังวลเกี่ยวกับการร่วมงานกับพวกเขาโดยใช้