summaryrefslogtreecommitdiff
path: root/examples/functions/dirname
blob: ccb8c841bde583536e90000beecfd1b756455674 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Date: Fri, 11 Oct 91 11:22:36 edt
# From: friedman@gnu.ai.mit.edu
# To: bfox@gnu.ai.mit.edu

# A replacement for dirname(1).  This one appears less often on some
# systems I use than basename(1), and I really depend on it for some
# things.  Usage: dirname [path]
function dirname ()
{
 local dir="$1"
 local tdir="${dir%/}"

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

    echo "${dir%/*}"
}