> There are two weird things with this list: sh is definitively weird in places.
> : doesn't need to be a special built-in at all. It can be > implemented perfectly well the same as /usr/bin/true. But it's defined to be a special built-in. (As an aside, true is a built-in -- see 2.9.1 1.d.) > cd is missing, yet it can't possibly be implemented externally. cd is a built-in, but not a special built-in. > So I suppose I would amend my proposal to do this in the more sensible > way, and make cd special, and : not special. This would violate POSIX. There's a strange hierarchy special built-in utitility -- built-in utitility -- utitility implemented as a built-in. If you implement a utility (say echo) as a built-in, well, it's a utility implemented as a built-in and just behaves as if it weren't. 2.9.1. 1.e.i.a even specifies that the built-in is not found when there's no such file in PATH. (special) built-in utilities must be built in. You're no allowed to implement them externally. What the reason for some of the built-ins to be special and some not I never understood. KRE, can you shed some light on this?
