summaryrefslogtreecommitdiff
path: root/examples/functions/basename
blob: a5413495d4e05ec8724d1236f2030a1e6929ba27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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.
}