bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: basename, dirname why not built-in?


From: Chris F.A. Johnson
Subject: Re: basename, dirname why not built-in?
Date: Wed, 13 Feb 2002 21:12:13 GMT

On 13 Feb 2002, Dan Jacobson wrote:

> $ type basename
> basename is /bin/basename
>
> OK, but I've seen a lost of built-ins that do more than basename...
> So how can one justify having built-ins for some of the simple stuff
> in /bin but not all of them?  Got to make a definition of where to
> draw the line.  Lots of them or none of them.
>
> $ type dirname
> dirname is /usr/bin/dirname
>
> Isn't that one just child's play to implement... wouldn't there be no
> better a justification for a built-in than dirname?  [save lots of CPU
> time per call.]

        basename ()
        {
            local path=$1;
            local suffix=$2;
            case "$path" in
                */ | "") basename ${path%/} $suffix ;;
                *) path=${path##*/};
                   echo ${path%$suffix}
                   ;;
            esac
        }

        dirname ()
        {
            case $1 in
                */) dirname ${1%/}  ;;
                "") echo '/' ;;
                */*) echo "${1%/*}" ;;
                *) echo '.' ;;
            esac
        }

        export -f basename dirname

-- 
        Chris F.A. Johnson                              bq933@torfree.net
        =================================================================
        c.f.a.johnson@rogers.com                http://cfaj.freeshell.org
        cfaj@freeshell.org        http://members.rogers.com/c.f.a.johnson



reply via email to

[Prev in Thread] Current Thread [Next in Thread]