What is the simplest way to remove a trailing slash from each parameter? What is the simplest way to remove a trailing slash from each parameter? shell shell

What is the simplest way to remove a trailing slash from each parameter?


You can use the ${parameter%word} expansion that is detailed here. Here is a simple test script that demonstrates the behavior:

#!/bin/bash# Call this as:#   ./test.sh one/ two/ three/ ## Output:#  one two threeecho ${@%/}


The accepted answer will trim ONE trailing slash.

One way to trim multiple trailing slashes is like this:

VALUE=/looks/like/a/path///TRIMMED=$(echo $VALUE | sed 's:/*$::')echo $VALUE $TRIMMED

Which outputs:

/looks/like/a/path/// /looks/like/a/path


This works for me: ${VAR%%+(/)}

As described here http://wiki.bash-hackers.org/syntax/pattern

May need to set the shell option extglob. I can't see it enabled for me but it still works