% rc % whatis cd builtin cd % It's much simpler this way. The output is the executable input, free of decoration and ready to use. In today's Unix (I use the term loosely) world, the phrase "free of decoration" is apostasy. -rob On Sun, Feb 9, 2020 at 10:26 AM Chet Ramey wrote: > On 2/8/20 6:11 PM, Rob Pike wrote: > > Not for me it doesn't. > > > > % bash > > > > bash-3.2$ function f() { > > > > echo hi > > > > } > > > > bash-3.2$ export f > > bash-3.2$ bash > > bash-3.2$ f > > bash-3.2$ > > jenna(1)$ echo $BASH_VERSION > 5.0.11(6)-release > jenna(1)$ f() { echo f; } > jenna(1)$ export -f f > jenna(1)$ bash > jenna(2)$ f > f > jenna(2)$ > > It works the same in Mac OS X's bash-3.2. > > > I added the 'builtin' command, which did leave the labs. But I added it > as > > a way for the "whatis" command to show a builtin, as well as allowing a > way > > to guarantee you get the builtin on execution. > > Bash uses `type' to tell whether something is a builtin. How does `builtin' > say whether or not a command is builtin? The output with no arguments? > > > How do I get bash to print the function as (shell) source code, so I > could > > edit it and play with it again? It was the synergy of all this stuff > > connected seamlessly that made it so compelling. > > > > jenna(2)$ declare -pf f > f () > { > echo f > } > declare -fx f > > If it weren't exported, you wouldn't get the `declare' command appended > there. > > -- > ``The lyf so short, the craft so long to lerne.'' - Chaucer > ``Ars longa, vita brevis'' - Hippocrates > Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/ >