File: basename

package info (click to toggle)
bash 4.3-11
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 37,084 kB
  • sloc: ansic: 99,500; sh: 6,836; yacc: 5,024; perl: 4,227; makefile: 4,197; asm: 48; awk: 23; sed: 16
file content (23 lines) | stat: -rw-r--r-- 645 bytes parent folder | download | duplicates (13)
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.
}