यदि कोई एक है, तो एक अनुगामी स्लैश को हटाने के लिए, आप सभी POSIX- शैली के गोले में मौजूद प्रत्यय हटाने के पैरामीटर विस्तार निर्माण का उपयोग कर सकते हैं :
x=${x%/}
कुछ जटिलताएँ हैं। यह केवल एक स्लैश को हटाता है, इसलिए यदि आपने शुरुआत की है a/b/c//
तब भी आप स्लैश के साथ समाप्त होंगे। इसके अलावा, यदि मूल मार्ग था /
, तो आपको स्लैश रखने की आवश्यकता है। यहाँ एक और अधिक जटिल समाधान है जो इन मामलों की देखभाल करता है:
case $x in
*[!/]*/) x=${x%"${x##*[!/]}"};;
*[/]) x="/";;
esac
वैकल्पिक रूप से, ksh में, या बाद में बैश में shopt -s extglob
:
[[ x = *[!/] ]] || x=${x%%*(/)}
ध्यान दें कि कई मामलों में, यह कोई फर्क नहीं पड़ता है कि एक अनुगामी स्लैश है। इससे कोई फर्क नहीं पड़ता कि तर्क एक निर्देशिका का एक प्रतीकात्मक लिंक है: अनुगामी स्लैश के साथ, तर्क निर्देशिका को नामित करता है, जबकि कोई अनुगामी स्लैश के साथ, तर्क प्रतीकात्मक लिंक को नामित करता है। यह कुछ अन्य कार्यक्रमों के साथ भी मायने रखता है, उदाहरण के लिए rsync
एक अनुगामी स्लेश की उपस्थिति के आधार पर स्रोत तर्क को अलग तरह से व्यवहार किया जाता है।
/
।