On 08/10/2015 02:18 AM, Juanma wrote: > Here is another point I find confusing: I thought a "shell builtin" didn't > have a separate binary executable file, like 'cd' (which cd => fail),
Actually, POSIX requires that there be a separate 'cd' binary, although it does not have to behave the same as the shell builtin. (About all an exec'able cd can do is tell you by exit status whether the builtin cd would succeed or fail; or be used for its CDPATH side-effect of printing a directory name). GNU/Linux systems tend to ignore the POSIX requirement of exec'able counterparts, although here is how Solaris effectively does it: $ cat /bin/cd #!/bin/sh exec $(basename $0) "$@" $ and hard-linking that 2-liner to all of the shell builtins where POSIX requires to have a non-builtin counterpart. See also http://austingroupbugs.net/view.php?id=705 It is only the special builtins (such as 'exit') where POSIX does not require an exec'able counterpart. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature