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, 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

     builtin [-options] [args ...]

     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

     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
           {                 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          No
           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
           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), pwd(1), sh(1), test(1), time(1), true(1), which(1),

     The builtin manual page first appeared in FreeBSD 3.4.

     This manual page was written by Sheldon Hearn ⟨⟩.

macOS 12.1                      February 23, 2005                     macOS 12.1