BUILTIN(1) | General Commands Manual | BUILTIN(1) |
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
, 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
, test
,
then
, time
,
times
, trap
,
true
, type
,
ulimit
, umask
,
unalias
, uncomplete
,
unhash
, unlimit
,
unset
, unsetenv
,
until
, wait
,
where
, which
,
while
— shell built-in
commands
See the built-in command description in the appropriate shell manual page.
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 of 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) |
! |
No | No | Yes |
% |
No | Yes | No |
. |
No | No | Yes |
: |
No | Yes | Yes |
@ |
No | Yes | Yes |
[ |
Yes | No | Yes |
{ |
No | No | Yes |
} |
No | No | Yes |
alias |
No** | Yes | Yes |
alloc |
No | Yes | No |
bg |
No** | Yes | Yes |
bind |
No | No | Yes |
bindkey |
No | Yes | No |
break |
No | Yes | Yes |
breaksw |
No | Yes | No |
builtin |
No | No | Yes |
builtins |
No | Yes | No |
case |
No | Yes | Yes |
cd |
No** | Yes | Yes |
chdir |
No | Yes | Yes |
command |
No** | No | Yes |
complete |
No | Yes | No |
continue |
No | Yes | Yes |
default |
No | Yes | No |
dirs |
No | Yes | No |
do |
No | No | Yes |
done |
No | No | Yes |
echo |
Yes | Yes | Yes |
echotc |
No | Yes | No |
elif |
No | No | Yes |
else |
No | Yes | Yes |
end |
No | Yes | No |
endif |
No | Yes | No |
endsw |
No | Yes | No |
esac |
No | No | Yes |
eval |
No | Yes | Yes |
exec |
No | Yes | Yes |
exit |
No | Yes | Yes |
export |
No | No | Yes |
false |
Yes | No | Yes |
fc |
No** | No | Yes |
fg |
No** | Yes | Yes |
filetest |
No | Yes | No |
fi |
No | No | Yes |
for |
No | No | Yes |
foreach |
No | Yes | No |
getopts |
No** | No | Yes |
glob |
No | Yes | No |
goto |
No | Yes | No |
hash |
No** | No | Yes |
hashstat |
No | Yes | No |
history |
No | Yes | No |
hup |
No | Yes | No |
if |
No | Yes | Yes |
jobid |
No | No | Yes |
jobs |
No** | Yes | Yes |
kill |
Yes | Yes | Yes |
limit |
No | Yes | No |
local |
No | No | Yes |
log |
No | Yes | No |
login |
Yes | Yes | No |
logout |
No | Yes | No |
ls-F |
No | Yes | No |
nice |
Yes | Yes | No |
nohup |
Yes | Yes | No |
notify |
No | Yes | No |
onintr |
No | Yes | No |
popd |
No | Yes | No |
printenv |
Yes | Yes | No |
printf |
Yes | No | Yes |
pushd |
No | Yes | No |
pwd |
Yes | No | Yes |
read |
No** | No | Yes |
readonly |
No | No | Yes |
rehash |
No | Yes | No |
repeat |
No | Yes | No |
return |
No | No | Yes |
sched |
No | Yes | No |
set |
No | Yes | Yes |
setenv |
No | Yes | No |
settc |
No | Yes | No |
setty |
No | Yes | No |
setvar |
No | No | Yes |
shift |
No | Yes | Yes |
source |
No | Yes | No |
stop |
No | Yes | No |
suspend |
No | Yes | No |
switch |
No | Yes | No |
telltc |
No | Yes | No |
test |
Yes | No | Yes |
then |
No | No | Yes |
time |
Yes | Yes | No |
times |
No | No | Yes |
trap |
No | No | Yes |
true |
Yes | No | Yes |
type |
No** | No | Yes |
ulimit |
No** | No | Yes |
umask |
No** | Yes | Yes |
unalias |
No** | Yes | Yes |
uncomplete |
No | Yes | No |
unhash |
No | Yes | No |
unlimit |
No | Yes | No |
unset |
No | Yes | Yes |
unsetenv |
No | Yes | No |
until |
No | No | Yes |
wait |
No** | Yes | Yes |
where |
No | Yes | No |
which |
Yes | Yes | No |
while |
No | Yes | Yes |
csh(1), dash(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), zsh(1)
The builtin
manual page first appeared in
FreeBSD 3.4.
This manual page was written by Sheldon Hearn <sheldonh@FreeBSD.org>.
December 21, 2010 | macOS 15.0 |