On 8/20/15 8:38 PM, Linda Walsh wrote: > > > Chet Ramey wrote: >>> The earlier spec had -e only exit a script if a *simple* (external) >>> command failed. It didn't include builtins nor functions. >> >> This is not; builtins and functions are simple commands. > --- > The builtins are _complex_ binary blobs that replace external commands. > > Functions are a collection of many commands. They are not a single, > simple statement. I remember using their return value in some cases.
`Simple command' is a specific term with a specific meaning. It doesn't have anything to do with perceived implementation complexity. > > With the change, I couldn't run a func and have it return the > value in $? (1 byte, I know) -- but about 128x as flexible as "ok"/"die" > (i.e. any non-zero value triggers the behavior > now, but before, it didn't). That's fine, even clever, but fundamentally incompatible with the idea that 0 means success and everything else means failure. > My simplistic view was that -e was there to auto-exit if an external > command failed because they are "out of your control". That's an incomplete view. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/