BUILTIN(1)

NAME
builtin, builtin!, %, builtin., builtin:, @, [, {, }, alias, alloc, bg, bind, bindkey, break, breaksw, builtins, case, cd, chdir, command, complete, continue, default, dirs, do, done, echo, echotc, elif, else, end, endif, endsw, esac, eval, exec, exit, export, false, fc, fg, filetest, fi, for, foreach, getopts, glob, goto, hash, hashstat, history, hup, if, jobid, jobs, kill, let, limit, local, log, login, logout, ls-F, nice, nohup, notify, onintr, popd, printenv, printf, pushd, pwd, read, readonly, rehash, repeat, return, sched, set, setenv, settc, setty, setvar, shift, source, stop, suspend, switch, telltc, termname, test, then, time, times, trap, true, type, ulimit, umask, unalias, uncomplete, unhash, unlimit, unset, unsetenv, until, wait, where, which, while, wordexp, wordexp2 - shell built-in commands

SYNOPSIS
See the built-in command description in the appropriate shell manual page.

DESCRIPTION
Shell builtin commands are commands that can be executed within the running shell's process. Note that, in the case of csh(1) builtin commands, the command is executed in a subshell if it occurs as any component of a pipeline except the last.

If a command specified to the shell contains a slash ‘/’, the shell will not execute a builtin command, even if the last component of the specified command matches the name of a builtin command. Thus, while specifying “echo” causes a builtin command to be executed under shells that support the echo builtin command, specifying “/bin/echo” or “./echo” does not.

While some builtin commands may exist in more than one shell, their operation may be different under each shell which supports them. Below is a table which lists shell builtin commands, the standard shells that support them and whether they exist as standalone utilities.

Only builtin commands for the csh(1) and sh(1) shells are listed here. Consult a shell's manual page for details on the operation its builtin commands. Beware that the sh(1) manual page, at least, calls some of these commands “built-in commands” and some of them “reserved words”. Users of other shells may need to consult an info(1) page or other sources of documentation.

Commands marked “No**” under External do exist externally, but are implemented as scripts using a builtin command of the same name.
Command | External | csh(1) | sh(1)
! | | | Yes
% | | Yes |
. | | | Yes
: | | Yes | Yes
@ | | Yes |
[| Yes | | Yes
{ | | | Yes
} | | | Yes
alias | No** | Yes | Yes
alloc | | Yes |
bg | No** | Yes | Yes
bind | | | Yes
bindkey | | Yes |
break | | Yes | Yes
breaksw | | Yes |
builtin | | | Yes
builtins | | Yes |
case | | Yes | Yes
cd | No** | Yes | Yes
chdir | | Yes | Yes
command | No** | | Yes
complete | | Yes |
continue | | Yes | Yes
default | | Yes |
dirs | | Yes |
do | | | Yes
done | | | Yes
echo | Yes | Yes | Yes
echotc | | Yes |
elif | | | Yes
else | | Yes | Yes
end | | Yes |
endif | | Yes |
endsw | | Yes |
esac | | | Yes
eval | | Yes | Yes
exec | | Yes | Yes
exit | | Yes | Yes
export | | | Yes
false | Yes | | Yes
fc | No** | | Yes
fg | No** | Yes | Yes
filetest | | Yes |
fi | | | Yes
for | | | Yes
foreach | | Yes |
getopts | No** | | Yes
glob | | Yes |
goto | | Yes |
hash | | | Yes
hashstat | | Yes |
history | | Yes |
hup | | Yes |
if | | Yes | Yes
jobid | | | Yes
jobs | No** | Yes | Yes
kill | Yes | Yes | Yes
let | | | Yes
limit | | Yes |
local | | | Yes
log | | Yes |
login | Yes | Yes |
logout | | Yes |
ls-F | | Yes |
nice | Yes | Yes |
nohup | Yes | Yes |
notify | | Yes |
onintr | | Yes |
popd | | Yes |
printenv | Yes | Yes |
printf | Yes | | Yes
pushd | | Yes |
pwd | Yes | | Yes
read | No** | | Yes
readonly | | | Yes
rehash | | Yes |
repeat | | Yes |
return | | | Yes
sched | | Yes |
set | | Yes | Yes
setenv | | Yes |
settc | | Yes |
setty | | Yes |
setvar | | | Yes
shift | | Yes | Yes
source | | Yes |
stop | | Yes |
suspend | | Yes |
switch | | Yes |
telltc | | Yes |
termname | | Yes |
test | Yes | | Yes
then | | | Yes
time | Yes | Yes |
times | | | Yes
trap | | | Yes
true | Yes | | Yes
type | | | Yes
ulimit | | | Yes
umask | No** | Yes | Yes
unalias | No** | Yes | Yes
uncomplete | | Yes |
unhash | | Yes |
unlimit | | Yes |
unset | | Yes | Yes
unsetenv | | Yes |
until | | | Yes
wait | No** | Yes | Yes
where | | Yes |
which | Yes | Yes |
while | | Yes | Yes
wordexp | | | Yes
wordexp2 | | | Yes

Note that the wordexp and wordexp2 commands are only meant to be used by wordexp(3) and not by the user.

SEE ALSO
csh(1), echo(1), false(1), info(1), kill(1), login(1), nice(1), nohup(1), printenv(1), printf(1), pwd(1), sh(1), test(1), time(1), true(1), which(1), wordexp(3)

HISTORY
The builtin manual page first appeared in FreeBSD 3.4.

AUTHORS
This manual page was written by Sheldon Hearn <sheldonh@FreeBSD.org>.