Bash scripting

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Lynn David Newton
Date:  
Subject: Bash scripting
Bryce> It moves the second parameter passed to the
Bryce> first's variable if there was a match. I don't
Bryce> want to be tied down to a certain set/order of
Bryce> the parameters. I'm simply trying to
Bryce> move/rename $2 to $1 which is very difficult
Bryce> because a variable name can't be number. Hope
Bryce> that helps.

Is there a reason you're tied to the positional
parameters? How about just reassigning them to ordinary
variables names?

I'm guessing perhaps you are trying to deal with
parsing options? If so, how about using getopts, which
is designed exactly for this purpose?

Some sample code taken from a working program (written
in ksh, not bash, but is should run pretty much the
same):

# parse options
while getopts c:fhl:p:s:t: opt
do
    case $opt in
    c)
        CACHEDIR=$OPTARG
        [[ -d $CACHEDIR ]] || {
        print -u2 "No cache directory: $CACHEDIR"
        exit 1; }
    ;;
    f)
        fflag=1
    ;;
    h)
        helpmsg $(basename $0)
        exit 0
    ;;
    l)
        SYSLOGIN=$OPTARG
    ;;
    p)
        PROG=$OPTARG
    ;;
    s)
        SYS=$OPTARG
    ;;
    t)
        TMPDIR=$OPTARG
        [[ -d $TMPDIR ]] || {
        print -u2 "No temporary directory: $TMPDIR"
        exit 1; }
    ;;
    *)  # fallthrough for bad option
        print -u2 "$USAGE"
        exit 1
    ;;
    esac
done


# shift out options and arguments
shift $((OPTIND - 1))

--
Lynn David Newton
Phoenix, AZ