On Tue, Sep 06, 2016 at 04:09:49PM -0400, Anthony Coulter wrote: > Regarding Jiri's suggestion: Here is a diff that makes > `rcctl ls all' only list executable files with valid service > names. > > This diff also fixes two problems with my original submission: > 1. The use of `[' instead of `[[' causes filename expansion to > take place on the right-hand side of the comparison; you get > different results depending on which directory you're sitting > in when you test. I have switched to `[[' to fix that problem. > 2. There was a stray closing brace that somehow did not cause > problems in testing.
That's not enough. It cannot start with a digit either. I'm working on a better diff. > Index: usr.sbin/rcctl/rcctl.sh > =================================================================== > RCS file: /open/anoncvs/cvs/src/usr.sbin/rcctl/rcctl.sh,v > retrieving revision 1.104 > diff -u -p -r1.104 rcctl.sh > --- usr.sbin/rcctl/rcctl.sh 30 Jul 2016 06:25:21 -0000 1.104 > +++ usr.sbin/rcctl/rcctl.sh 6 Sep 2016 20:03:33 -0000 > @@ -53,8 +53,8 @@ ls_rcscripts() > > cd /etc/rc.d && set -- * > for _s; do > - [[ ${_s} = *.* ]] && continue > - [ ! -d "${_s}" ] && echo "${_s}" > + [[ "${_s}" != +([_0-9A-Za-z]) ]] && continue > + [ -x "${_s}" ] && echo "${_s}" > done > } > > @@ -182,7 +182,7 @@ svc_is_meta() > svc_is_special() > { > local _svc=$1 > - [ -n "${_svc}" ] || return > + [[ "${_svc}" = +([_0-9A-Za-z]) ]] || return > > local _cached _ret > > -- Antoine