Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11310
| From | Eric Blake <eblake@redhat.com> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: Worth mentioning in documentation |
| Date | 2015-08-10 06:55 -0600 |
| Organization | Red Hat, Inc. |
| Message-ID | <mailman.8069.1439211762.904.bug-bash@gnu.org> (permalink) |
| References | <3156909.AJj7susDjE@debxuan> <2473887.nPWqTkAiyd@debxuan> <20150807122454.GU4309@eeg.ccf.org> <3273328.haPDicsXFC@debxuan> |
[Multipart message — attachments visible in raw view] - view raw
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
Back to gnu.bash.bug | Previous | Next | Find similar
Re: Worth mentioning in documentation Eric Blake <eblake@redhat.com> - 2015-08-10 06:55 -0600
csiph-web