Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Sep 2001 18:06:01 -0400 (EDT)
From:      Adrian Filipi-Martin <adrian@ubergeeks.com>
To:        Ulf Zimmermann <ulf@Alameda.net>
Cc:        <hackers@FreeBSD.ORG>
Subject:   Re: Question about what programs to use in /etc/rc*
Message-ID:  <20010909180325.T36056-100000@lorax.ubergeeks.com>
In-Reply-To: <20010909024721.B1500@seven.alameda.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 9 Sep 2001, Ulf Zimmermann wrote:

> These are some examples strings:
>
> "dhcp"
> "dhcp media 10baseTX"
> "media 10baseTX dhcp mediaopt half-duplex"
>
> The following code will get me inside a if condition:
>
> 	if [ `expr "${ifconfig_args}" : '.*[Dd][Hh][Cc][Pp].*'` -ne 0 ]; then
>
> 		....
>
> 	fi

	You do everything you need within sh.  Someone else pointed out
that case/esac is your friend here.  It was not quite complete.  Here's
more complete example that will let you pair up the options and their
arguments if they take them.

ifconfig_args="media 10baseTX dhcp mediaopt half-duplex"
set -- ${ifconfig_args}
while [ $# -gt 0 ]; do
    op=$1
    case ${op} in
        [Mm][Ee][Dd][Ii][Aa])
            op_arg=$2
            shift
            echo "op=media op_arg=${op_arg}"
            ;;
        [Mm][Ee][Dd][Ii][Aa][Oo][Pp][Tt])
            op_arg=$2
            shift
            echo "op=mediaopt op_arg=${op_arg}"
            ;;
        [Dd][Hh][Cc][Pp])
            echo "do something dhcp specific..."
            ;;
        *)
            echo "unknown op: ${op}"
            ;;
    esac
    shift
done

cheers,

	Adrian
--
[ adrian@ubergeeks.com ]


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010909180325.T36056-100000>