3 ms·
Problems concerning the GNU operating system
- dalke 11y ago"All [/usr/bin/true] is supposed to do is to return an exit value of 0" As http://trillian.mit.edu/~jc/humor/ATT_Copyright_true.html http://trillian.mit.edu/~jc/humor/ATT_Copyright_true.html points out, there are several reasons for the GNU true to do what it does: 1) it's faster to run an executable than to start a script that does an exit 0. You'll notice that FreeBSD also uses a compiled C program, at https://svnweb.freebsd.org/base/release/9.3.0/usr.bin/true/true.c?view=markup https://svnweb.freebsd.org/base/release/9.3.0/usr.bin/true/t... . And it has two embedded SCCS identifiers, even though that isn't required by POSIX. 2) the original AT&T code said that shell was covered under copyright. The BSD code went through the lawsuit which established that there was no copyright infringement, but the C code is obviously not derivative of the original script. (It's unlikely that this is a real issue now.) 3) The GNU coding standard says that all executables should support a --version and --help. See https://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html#Command_002dLine-Interfaces https://www.gnu.org/prep/standards/html_node/Command_002dLin... . Of course, once you expose English output to the user you should support internationalization. Yes, that's mission creep. Then again, complaints about mission creep in GNU code is ancient. Here's a joke about the options in GNU echo, from 1985(!) - https://www.gnu.org/fun/jokes/echo.msg.html https://www.gnu.org/fun/jokes/echo.msg.html .