2009/10/7 John Stalker <stal...@maths.tcd.ie>: > Rm is, I think, an example of someone who simply wasn't thinking > properly. In > > rm `{ complicated pipeline } > > I almost certainly want the exit status to reflect whether all the > selected files were deleted, even if there weren't any, so I want > rm without arguments to succeed silently.
it does under plan 9. FWIW, my experimental "alphabet" shell formalised the types of command line arguments and checked usage before invoking the actual command. each option took a fixed number of arguments; options were followed by zero or more fixed arguments, optionally followed by a repeated argument of the same type. this was sufficient for many of the conventional commands, but not, for instance, mv which has a fixed argument at the end. as with any language, static typing is an advantage (it avoids some errors) and a disadvantage (it's hard to do some things because they don't fit within the type system). mileage varies.