From owner-freebsd-ports@FreeBSD.ORG Tue Jun 9 19:30:51 2009 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FB46106568B for ; Tue, 9 Jun 2009 19:30:51 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx21.fluidhosting.com [204.14.89.4]) by mx1.freebsd.org (Postfix) with ESMTP id ECB8A8FC19 for ; Tue, 9 Jun 2009 19:30:50 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: (qmail 7884 invoked by uid 399); 9 Jun 2009 19:30:46 -0000 Received: from localhost (HELO foreign.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with ESMTPAM; 9 Jun 2009 19:30:46 -0000 X-Originating-IP: 127.0.0.1 X-Sender: dougb@dougbarton.us Message-ID: <4A2EB864.1060006@FreeBSD.org> Date: Tue, 09 Jun 2009 12:30:44 -0700 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 2.0.0.21 (X11/20090423) MIME-Version: 1.0 To: Kevin Downey References: <17ca67550906091046t15dfa574i95e432a09e60d379@mail.gmail.com> <1d3ed48c0906091140t37fbdd4eq84a1153348db7a53@mail.gmail.com> In-Reply-To: <1d3ed48c0906091140t37fbdd4eq84a1153348db7a53@mail.gmail.com> X-Enigmail-Version: 0.95.7 OpenPGP: id=D5B2F0FB Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Edwin Shao , freebsd-ports@freebsd.org Subject: Re: Port of "service" command X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 19:30:51 -0000 Kevin Downey wrote: > I have a similar shell function I am rather fond of: > > rc(){ > find /etc/rc.d/"$1" /usr/local/etc/rc.d/"$1" -exec sudo {} `echo > "$*"|cut -f 2- -d \ ` \; > } Wow, that's painful. :) The only reason you don't notice how painful is because those two directories have only a few files. Much much more efficient would be something like: rc () { local script=$1 shift if [ -x "/etc/rc.d/$script" ]; then /etc/rc.d/$script $* elif [ -x "/usr/local/etc/rc.d/$script" ]; then /usr/local/etc/rc.d/$script $* else echo "$script does not exist in /etc/rc.d or" echo "/usr/local/etc/rc.d" return 1 fi } hth, Doug -- This .signature sanitized for your protection