Date: Sun, 04 Mar 2007 14:52:49 -0800 From: Doug Barton <dougb@FreeBSD.org> To: Yar Tikhiy <yar@comp.chem.msu.su> Cc: freebsd-rc@FreeBSD.org Subject: Re: cvs commit: doc/en_US.ISO8859-1/articles/rc-scripting article.sgml Message-ID: <45EB4DC1.6040903@FreeBSD.org> In-Reply-To: <20070304130408.GJ40430@comp.chem.msu.su> References: <200703031011.l23ABYhb039755@repoman.freebsd.org> <45EA68AF.6000700@FreeBSD.org> <20070304130408.GJ40430@comp.chem.msu.su>
next in thread | previous in thread | raw e-mail | index | archive | help
Yar Tikhiy wrote: > On Sat, Mar 03, 2007 at 10:35:27PM -0800, Doug Barton wrote: >> Yar Tikhiy wrote: >>> yar 2007-03-03 10:11:34 UTC >>> >>> FreeBSD doc repository >>> >>> Modified files: >>> en_US.ISO8859-1/articles/rc-scripting article.sgml >>> Log: >>> Explain how an rc.d script can use extra command-line arguments. >>> >>> Revision Changes Path >>> 1.9 +138 -0 >>> doc/en_US.ISO8859-1/articles/rc-scripting/article.sgml >>> >>> http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/en_US.ISO8859-1/articles/rc-scripting/article.sgml.diff?&r1=1.8&r2=1.9&f=h >> Yar, >> >> This good stuff, thanks! I have one quibble with the last paragraph. >> The shift in rc.subr isn't "apparent" as you phrase it, it's literal: > > Yeah, I tried to hide a thing from the reader which he should already > have known: the shift command. :-) Again, looking at it from the point of view of a naive reader, there is a difference between "I know that the shift command exists, and sort of know what it does" and "I know how the shift command is used by rc.subr to affect the command line arguments to my script." Your article is (to some extent) about teaching the latter, so I think it's reasonable to spend some time spoon feeding the reader until they are ready for some meat. >> run_rc_command() >> { >> ... >> # Don't repeat the first argument when passing additional command- >> # line arguments to the command subroutines. >> # >> shift 1 >> rc_extra_args="$*" > > Oh my... Now I see why existing rc.d scripts use this bogus command: > > run_rc_command "$*" > > It's because rc.subr will mess up the arguments anyway. I think it's more likely that someone would use $* vs. $@ out of force of habit. :) > Perhaps > we should investigate if "$@" can be used consistently to preserve > original boundaries between arguments to an rc.d script... I wouldn't object to some testing on that. I'll change my local copy and see how it behaves. ... > Thank you for this suggestion, it sounds very reasonable! Glad to help, as always. Regards, Doug -- This .signature sanitized for your protection
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45EB4DC1.6040903>