72 lines · 1.7 KB · Text
RawDownload
.TH GETFLAGS 8.SH NAMEgetflags, usage \- command-line parsing for shell scripts.SH SYNOPSIS.B aux/getflags $*.PP.B aux/usage.SH DESCRIPTION.I Getflagsparses the options in its command-line argumentsaccording to the environment variable.BR $flagfmt .This variable should be a list of comma-separated options.Each option can be a single letter, indicating that it doesnot take arguments, or a letter followed by the space-separatednames of its arguments..I Getflags prints an .IR rc (1)script on standard output which initializes theenvironment variable.BI $flag xfor every option mentioned in .BR $flagfmt .If the option is not present on the command-line, the scriptsets that option's flag variable to an empty list.Otherwise, the script sets that option's flag variable witha list containing the option's arguments or, if the option takes no arguments,with the string.BR 1 .The script also sets the variable.B $*to the list of arguments following the options.The final line in the script sets the.B $statusvariable, to the empty string on successand to the string.B usagewhen there is an error parsing the command line..PP.I Usageprints a usage message to standard error.It creates the message using.BR $flagfmt ,as described above,.BR $args ,which should contain the string to be printed explainingnon-option arguments,and.BR $0 ,the program name(see.IR rc (1))..SH EXAMPLEParse the arguments for.IR leak (1):.IP.EXflagfmt='b,s,f binary,r res,x width'args='name | pid list'if(! ifs=() eval `{aux/getflags $*} || ~ $#* 0){	aux/usage	exit usage}.EE.SH SOURCE.B /sys/src/cmd/aux/getflags.c.br.B /sys/src/cmd/aux/usage.c.SH SEE ALSO.IR arg (2)