Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Jan 2006 08:27:54 -0800
From:      Luke Bakken <luke.bakken@gmail.com>
To:        Ensel Sharon <user@dhp.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: shell scripting question (mdconfig device choosing)
Message-ID:  <6acc6ca40601250827l34ed2a08jaf160b94443bff0d@mail.gmail.com>
In-Reply-To: <Pine.LNX.4.21.0601251027420.8684-100000@shell.dhp.com>
References:  <6acc6ca40601250710x3b0de685j2d7168f6ac5442a0@mail.gmail.com> <Pine.LNX.4.21.0601251027420.8684-100000@shell.dhp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> > > Thank you very much - you got no output because you have no md device=
s in
> > > use.  I have a few in use and this is the output I get:
> > >
> > > # mdconfig -l
> > > md3 md2 md1 md0
> > >
> > > But I could just as easily get:
> > >
> > > # mdconfig -l
> > > md9 md8 md5 md3
> > >
> > > Hmm...I just saw that that line is in perl, and I do not have perl
> > > installed on any of my 6.0 machines ... I am not sure I want to insta=
ll it
> > > just for this one shell script :(
> >
> > Whoops, I forgot that perl isn't in the base any more. What scripting
> > languages do you have? If you only have sh, I'll work on that, but it
> > won't be a one-liner most likely. Or a C program.
>
>
> I am putting this into a larger, already written /bin/sh program
> ... doesn't need to be one line ...
>
> Wow - thanks a lot for your help.

OK, this works on my cygwin install and I think it's generic enough sh
programming it should work for you. You could expand the MDDEV
variable to encompass all of the devices you could have, past md9. I
read the mdconfig man page and it doesn't seem to have an option to
list all potential devices. You'll also have to change 'echo $DEV' to
whatever means you want to use to return the device from the function.
It's not the most elegant solution, but it works.

#!/bin/sh

function find_first_mdevice
{
    MDDEV=3D'md0 md1 md2 md3 md4 md5 md6 md7 md8 md9'
    MDOUT=3D`mdconfig -l`

    for DEV in $MDDEV
    do
        if ! echo $MDOUT | grep -q $DEV
        then
            break
        fi
    done
    echo $DEV
}

find_first_mdevice



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