On 3/30/20 6:59 PM, Rob Landley wrote: > Aha: > > $ readonly SECONDS; SECONDS=0; echo $SECONDS; echo hello > $ readonly SECONDS; SECONDS=0 > $ echo $? > 1 > > No error message. Line processing aborted despite ; not being &&.
The assignment function for SECONDS ignored it, but the higher-level code noted an assignment to a readonly variable and treated it as an assignment error. Assignment errors abort the processing of the current command, which in this case is the list. > $ POTATO=123 echo hello > bash: POTATO: readonly variable > hello > > Ok, "consistent" is the wrong word. Assignment errors preceding a simple command cause the command to return an error. > > $ bash -c $'SECONDS=42; readonly SECONDS; SECONDS=0\necho $SECONDS' > 0 > > And the assignment IS still zeroing it, despite the readonly and error. Yep. Dynamic variables. > $ bash -c 'SECONDS=42; echo $SECONDS; SECONDS=123+456; echo $?; echo > $SECONDS' > 42 > 0 > 0 > > And the "ignores integer, goes to zero instead" thing is not an error either. I do think SECONDS and RANDOM, at least, should accept arithmetic expressions on assignment. I'll make that change. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/ _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net