I have a shell script that makes heavy use of Command Substitution, i.e. x="$(some-command)" The script takes several seconds to execute, mainly because Command Substitution takes place in a Subshell Environment and that usually means a fork(). However, the OS X^W^WmacOS ksh only takes tens of milliseconds for the same job, as does shells/ast-ksh from pkgsrc. Unsurprisingly, the latter (I'm unable test for the former due to lack of ktrace or the like) doesn't fork.
Does anyone know how those ksh's achieve that? Are there any drawbacks? Could ash be taught the same thing? Or can someone think of a POSIX-compliant way to put the output of a command (think printf) into a variable without Command Substitution? Unfortunately printf ... | read x doesn't do the trick because POSIX allows (and most shells indeed do) execution of the tail-of-pipe in a Subshell Environment.