basename   [plain text]


# Date: Fri, 11 Oct 91 11:22:36 edt
# From: friedman@gnu.ai.mit.edu
# To: bfox@gnu.ai.mit.edu

# A replacement for basename(1).  Not all the systems I use have this
# program.  Usage: basename [path] {extension}
function basename ()
{
 local path="$1"
 local suffix="$2"
 local tpath="${path%/}"

    # Strip trailing '/' characters from path (unusual that this should
    # ever occur, but basename(1) seems to deal with it.)
    while [ "${tpath}" != "${path}" ]; do
       tpath="${path}"
       path="${tpath%/}"
    done

    path="${path##*/}"       # Strip off pathname
    echo ${path%${suffix}}   # Also strip off extension, if any.
}