tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: rc.d/rndctl



On 2008年9月18日, Brian A. Seklecki wrote:
> > Please allow for control over which devices get "-c -e" and which get
> > "-c" without "-e". Please also allow for use of the "-d" flag instead
> > of only "-t".
> 
> Right -- but no way to iterate or parse through semicolon separated
> lists,
What do you mean? What's wrong with
 IFS=';' eval set -- \$rndctl_flags
?
Here's a more complete suggestion:
 # Split on semicolons
 IFS=';' eval set -- \$rndctl_flags
 for args in "$@"; do
 # Within a single semicolon-separated segment,
 # parse zero or more flags followed by one or more devices.
 ceflags='' # one or more of -c/-e/-C/-E
 dtflags='' # exactly one of -d/-t
 for arg in $args; do
 case "$arg" in
 -[ceCE])
 ceflags="${ceflags}${ceflags:+ }${arg}"
 ;;
 -[dt]
 dtflags="${dtflags}${dtflags:+ }${arg}"
 ;;
 -*)
 error
 ;;
 *)
 # Perform the command with the specified
 # device or type name.
 # ceflags defaults to "-c -e".
 # dtflags defaults to "-d".
 dev="$arg"
 : ${ceflags:=-c -e}
 : ${dtflags:=-t}
 $command ${ceflags} ${dtflags} ${dev}
 ;;
 esac
 done
 done
--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /