On 5/23/07, Diego Biurrun <[EMAIL PROTECTED]> wrote:
The emacs comparison is nonsensical. test is a builtin in most shells (offhand bash, ash, dash, ksh, pdksh, zsh, sash on this Debian system where I have a login shell), so of course [ should be a builtin, too. They're the same thing after all.
Yes, if one is builtin, the other should be as well. I'm just saying that it's unclear to me why they should be builtin at all? "Efficiency", seems to be the standard answer, but then one could argue to builtin cat, sed, cut, tr, etc. etc., maybe /bin entirely, as well. Efficiency alone does not explain why these, but not others, are builtin. By the way, not very surprisingly, the original UNIX manual pages (see http://plan9.bell-labs.com/7thEdMan/v7vol1.pdf) do not mention test as being part of sh(1) at all, in fact, the only explicit reference to "test" in the sh(1) manpage is in the "see also" section. Even if most (if not all) Bourne Shell compatibles of today builtin this stuff, I still consider it bad practice. And the emacs comparison isn't nonsensical, it's just an exaggeration; one could argue to builtin emacs with the exact same arguments as mainly used for "test" and "[". Greetings, Sander.
