> A suggestion that was not adopted was to modify true and false to take an optional argument, and true would exit true only if the argument was non-zero, and false would exit false only if the argument was non-zero:
> while true $(($x > 5 && $y <= 25))
That's good that it wasn't adopted. I think one of the primary points of usefulness of these commands is as substitutes for whatever other commands the admin may like. Like if you want a user to not have a login shell, you can set the shell to /bin/false. fakechroot also uses /bin/true to substitute other commands like systemctl and ischroot.[1] It just works best if true always returns true regardless of arguments, ditto false.
The example use case isn't compelling either. In bash, you'd do this:
while (( $x > 5 && $y <= 25 ))
Wonder why `$(())` is standarized, but apparently `(())` isn't.
>Note, however, that "$(( x=5 ))" need not be equivalent to "$(( $x=5 ))" . If the value of the environment variable x is the string "y=" , the expansion of "$(( x=5 ))" would set x to 5 and output 5, but "$(( $x=5 ))" would output 0 if the value of the environment variable y is not 5 and would output 1 if the environment variable y is 5. Similarly, if the value of the environment variable is 4, the expansion of "$(( x=5 ))" would still set x to 5 and output 5, but "$(( $x=5 ))" (which would be equivalent to "$(( 4=5 ))" ) would yield a syntax error.
Ah, never change, Unix shells :) I still love this bonkers language.
I think I've used the previous iteration too much for my mental health, I instantly noticed the slight color change from bluish green to greenish blue.
I recommend looking up the Wikipedia article [0] on The Open Group, if you haven't heard of them yet. Among other things, they maintain standards such as LDAP and POSIX and also currently own the trademark for UNIX.
Changes to utilities: https://pubs.opengroup.org/onlinepubs/9799919799/xrat/V4_xcu...
Seems ratfor77 is gone ;)
Now we only need to update LSB with Docker, io_uring, and systemd LOL