Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site ut-sally.UUCP Path: utzoo!decvax!genrad!panda!talcott!harvard!seismo!ut-sally!jsq From: jsq@ut-sally.UUCP (John Quarterman) Newsgroups: mod.std.unix Subject: Re: command line arguments Message-ID: <2226@ut-sally.UUCP> Date: Mon, 1-Jul-85 12:16:37 EDT Article-I.D.: ut-sally.2226 Posted: Mon Jul 1 12:16:37 1985 Date-Received: Tue, 2-Jul-85 08:05:47 EDT References: <2210@ut-sally.UUCP> Reply-To: std-unix@ut-sally.UUCP Organization: U. Texas CS Dept., Austin, Texas Lines: 154 Approved: jsq@ut-sally.UUCP From: John Quarterman (moderator)Topic: getopt (command line arguments) The previous posting about standardization of command line options produced several comments about getopt, one of which I have already posted. I've picked out new information from the others and included them here, after an excerpt from the original posting. If your mail isn't excerpted here, it's not that I'm ignoring you: it's merely that either yours duplicated what earlier mail had already said, or it was mailed to ut-sally!jsq rather than ut-sally!std-unix and I haven't gotten confirmation, or it never got to me. ---------------------------------------------------------------------- Date: Thu, 27 Jun 85 18:08:26 bst From: Douglas Spencer Subject: Re: mod.std.unix created To: ut-sally!jsq > some commands take arguments as > > command -abcdefg filename > > and some as > > command -a -b -c -d -e -f -g filename > > It would be great if this was standardised. ------------------------------ Date: Sat, 29 Jun 85 08:42:41 edt From: Marty Shannon Subject: Re: command line arguments To: ut-sally!jsq Perhaps this should really be a followup rather than a reply, but there is a fairly strong move to standardize command argument parsing by using the getopt routine. It deals quite well with the problem, as well as providing a great deal of flexibility. Marty Shannon UUCP: ihnp4!eagle!mjs Phone: +1 201 522 6063 [ Someone else notes in mail that the AT&T command line argument standard is included in the System V Interface Definition, page 343 of the Spring 1985 edition, and getopt conforms to this standard. -mod] ------------------------------ Date: 29 Jun 85 23:49:35 CDT (Sat) From: Henry Spencer Subject: Re: command line arguments To: ihnp4!ut-sally!std-unix There is an AT&T standard for command argument syntax, and the getopt(3) parser which encourages its use. (Incidentally, the standard says that both (for example) "ls -al" and "ls -a -l" are legit.) AT&T has published its own getopt() sources to encourage use of getopt, and there is also an explicitly public-domain implementation that was published on the net some time ago (by me). [ I find the following articles in net.sources about getopt: >From: henry@utzoo.UUCP (Henry Spencer) Subject: public-domain getopt Message-ID: <3745@utzoo.UUCP> Date: Thu, 12-Apr-84 16:41:58 CST >From: hansen@pegasus.UUCP (Tony L. Hansen) Subject: Re: public domain getopt Message-ID: <1253@pegasus.UUCP> Date: Tue, 1-May-84 09:54:16 CDT >From: henry@utzoo.UUCP (Henry Spencer) Subject: minor bug in public-domain getopt Message-ID: <4188@utzoo.UUCP> Date: Tue, 7-Aug-84 15:31:16 CDT >From: keith@seismo.UUCP (Keith Bostic) Subject: public domain getopt(3) Message-ID: <3360@seismo.UUCP> Date: Fri, 24-Aug-84 07:54:08 CDT The first one is Henry's code, the next two are bug fixes to that, and the last one is a reimplementation by Keith Bostic. -mod ] Here at utzoo, most any time that we do significant work on a Bell program, we retrofit it with getopt unless its established syntax is seriously incompatible with this. And of course all our own code uses it. Getopt and its syntax have some defects, but uniformity is such a huge win that it's overwhelmingly worth it. Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry ------------------------------ Date: Sun, 30 Jun 85 01:00 EDT From: George M. Weaver Subject: Re: command line arguments To: ut-sally!std-unix Frank da Cruz's new C-Kermit adopts a set of command line argument standards that are worth looking at. He outlines them briefly, and gives credit to their creators in the Kermit User Manual, part of which I've included here (without permission -- hope you don't mind, Frank). =============================================================================== The C-Kermit command line syntax has been changed from that of earlier releases of Unix Kermit to conform to the "Proposed Syntax Standards for Unix System Commands" put forth by Kathy Hemenway and Helene Armitage of AT&T Bell Laboratories in Unix/World, Vol.1, No.3, 1984. The rules that apply are: - Command names must be between 2 and 9 characters ("kermit" is 6). - Command names must include lower case letters and digits only. - An option name is a single character. - Options are delimited by '-'. - Options with no arguments may be grouped (bundled) behind one delimiter. - Option-arguments cannot be optional. - Arguments immediately follow options, separated by whitespace. - The order of options does not matter. - '-' preceded and followed by whitespace means standard input. A group of bundled options may end with an option that has an argument. =============================================================================== George M. Weaver Penn State Astronomy Dept. GMW at PSUVM.BITNET ...!allegra!psuvax1!gmw@psuvm.bitnet ------------------------------ The moderated newsgroup mod.std.unix is for discussions of UNIX standards, in particular the one in progress by the IEEE P1003 "UNIX Standards" Committee. Please mail submissions to mod.std.unix to ut-sally!std-unix, and comments about the newsgroup to ut-sally!std-unix-request. Permission for posting to the newsgroup is assumed for mail to the former address, but mail to the latter address will not be posted unless explicit permission is included, or obtained by later negotiation. Mail to ut-sally!jsq concerning mod.std.unix will be treated like mail to ut-sally!std-unix-request. -- John Quarterman, jsq@ut-sally.ARPA, {ihnp4,seismo,ctvax}!ut-sally!jsq