source: trunk/third/bash/examples/functions/basename @ 12959

Revision 12959, 645 bytes checked in by tb, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r12958, which included commits to RCS files with non-trunk default branches.
Line 
1# Date: Fri, 11 Oct 91 11:22:36 edt
2# From: friedman@gnu.ai.mit.edu
3# To: bfox@gnu.ai.mit.edu
4
5# A replacement for basename(1).  Not all the systems I use have this
6# program.  Usage: basename [path] {extension}
7function basename ()
8{
9 local path="$1"
10 local suffix="$2"
11 local tpath="${path%/}"
12
13    # Strip trailing '/' characters from path (unusual that this should
14    # ever occur, but basename(1) seems to deal with it.)
15    while [ "${tpath}" != "${path}" ]; do
16       tpath="${path}"
17       path="${tpath%/}"
18    done
19
20    path="${path##*/}"       # Strip off pathname
21    echo ${path%${suffix}}   # Also strip off extension, if any.
22}
23
Note: See TracBrowser for help on using the repository browser.