SHELL_BUILTINS(1)               User Commands              SHELL_BUILTINS(1)
NAME
       shell_builtins, case, for, foreach, function, if, repeat, select,
       switch, until, while - shell command interpreter built-in commands
DESCRIPTION
       The shell command interpreters 
csh(1), 
ksh(1), 
ksh93(1), and 
sh(1)       have special built-in commands. The commands 
case, 
for, 
foreach,       
function, 
if, 
repeat, 
select, 
switch, 
until, and 
while are commands
       in the syntax recognized by the shells. They are described in the       
Commands section of the manual pages of the respective shells. In       
ksh93(1), 
fc, 
hash, 
stop, 
suspend, 
times, and 
type are aliases by
       default. In 
ksh93, the following built-ins are bound to the 
/bin       pathname by default and are invoked if the pathname search encounters
       an executable command of that name in the 
/bin or 
/usr/bin directory:       
cat, 
chown, 
getconf, 
head, 
mkdir, 
rmdir, 
tee, 
uniq, and 
wc.
       The remaining commands listed in the following table are built into
       the shells for reasons such as efficiency or data sharing between
       command invocations.  They are described on their respective manual
       pages.
         Command             Shell
       -----------------------------------       
++**alias      csh, ksh, ksh93       
bg             csh, ksh, ksh93, sh       
+*break        csh, ksh, ksh93, sh       
builtin        ksh93       
case           csh, ksh, ksh93, sh       
cat            ksh93       
cd             csh, ksh, ksh93, sh       
chdir          csh, sh       
chown          ksh93       
command        ksh93       
+*continue     csh, ksh, ksh93, sh       
dirs           csh       
disown         ksh93       
echo           csh, ksh, ksh93, sh       
+*eval         csh, ksh, ksh93, sh       
+*exec         csh, ksh, ksh93, sh       
+*exit         csh, ksh, ksh93, sh       
++**export     ksh, ksh93, sh       
false          ksh, ksh93       
fc             ksh, ksh93       
fg             csh, ksh, ksh93, sh       
for            ksh, ksh93, sh       
foreach        csh       
function       ksh, ksh93       
getconf        ksh93       
getopts        ksh, ksh93, sh       
glob           csh       
goto           csh       
hash           ksh, ksh93, sh       
hashstat       csh       
head           ksh93       
hist           ksh93       
history        csh       
if             csh, ksh, ksh93, sh       
jobs           csh, ksh, ksh93, sh       
kill           csh, ksh, ksh93, sh       
let            ksh, ksh93,       
limit          csh       
login          csh, ksh, ksh93, sh       
logout         csh       
mkdir          ksh93       
nice           csh       
+*newgrp       ksh, ksh93, sh       
nohup          csh       
notify         csh       
onintr         csh       
popd           csh       
print          ksh, ksh93       
printf         ksh93       
pushd          csh       
pwd            ksh, ksh93, sh       
read           ksh, ksh93, sh       
++**readonly   ksh, ksh93, sh       
rehash         csh       
repeat         csh       
+*return       ksh, ksh93, sh       
select         ksh, ksh93       
+set           csh, ksh, ksh93, sh       
setenv         csh       
shift          csh, ksh, ksh93, sh       
sleep          ksh93       
source         csh       
stop           csh, ksh, ksh93, sh       
suspend        csh, ksh, sh       
switch         csh       
tee            ksh93       
test           ksh, ksh93, sh       
time           csh       
*times         ksh, ksh93, sh       
*+trap         ksh, ksh93, sh       
true           ksh, ksh93       
type           ksh, ksh93, sh       
++**typeset    ksh, ksh93       
ulimit         ksh, ksh93, sh       
umask          csh, ksh, ksh93, sh       
+unalias       csh, ksh, ksh93       
unhash         csh       
uniq           ksh93       
unlimit        csh       
+unset         csh, ksh, ksh93, sh       
unsetenv       csh       
until          ksh, ksh93, sh       
*wait          csh, ksh, ksh93, sh       
whence         ksh, ksh93       
while          csh, ksh, ksh93, sh   
Bourne Shell, sh, Special Commands       Input/output redirection is now permitted for these commands. File
       descriptor 1 is the default output location. When Job Control is
       enabled, additional 
Special Commands are added to the shell's
       environment.
       In addition to these built-in reserved command words, 
sh also uses:       
:                      No effect; the command does nothing. A zero exit code
                      is returned.       
.filename                      Read and execute commands from 
filename and return.
                      The search path specified by 
PATH is used to find the
                      directory containing 
filename.   
C shell, csh       Built-in commands are executed within the C shell. If a built-in
       command occurs as any component of a pipeline except the last, it is
       executed in a subshell.  In addition to these built-in reserved
       command words, 
csh also uses:       
:            Null command. This command is interpreted, but performs no
            action.   
Korn Shell, ksh, Special Commands       Input/Output redirection is permitted. Unless otherwise indicated,
       the output is written on file descriptor 1 and the exit status, when
       there is no syntax error, is zero.
       Commands that are preceded by one or two 
* (asterisks) are treated
       specially in the following ways:
           1.     Variable assignment lists preceding the command remain in
                  effect when the command completes.
           2.     
I/O redirections are processed after variable assignments.
           3.     Errors cause a script that contains them to abort.
           4.     Words, following a command preceded by 
** that are in the
                  format of a variable assignment, are expanded with the
                  same rules as a variable assignment.  This means that
                  tilde substitution is performed after the 
= sign and word
                  splitting and file name generation are not performed.
       In addition to these built-in reserved command words, 
ksh also uses:       
* : [ 
arg ... ]
                                    The command only expands parameters.       
* .file [ 
arg ... ]
                                    Read the complete 
file then execute the
                                    commands. The commands are executed in
                                    the current shell environment. The
                                    search path specified by 
PATH is used to
                                    find the directory containing 
file. If
                                    any arguments 
arg are specified, they
                                    become the positional parameters.
                                    Otherwise, the positional parameters are
                                    unchanged. The exit status is the exit
                                    status of the last command executed. the
                                    loop termination test.   
Korn Shell, ksh93, Special Commands       Input/Output redirection is permitted. Unless otherwise indicated,
       the output is written on file descriptor 1 and the exit status, when
       there is no syntax error, is zero.
       Except for 
:, 
true, 
false, 
echo, 
newgrp, and 
login, all built-in
       commands accept 
-- to indicate end of options.  They also interpret
       the option 
--man as a request to display the manual page onto
       standard error and 
-? as a help request which prints a usage message
       on standard error.
       Commands that are preceded by one or two 
+ are treated specially in
       the following ways:
           1.     Variable assignment lists preceding the command remain in
                  effect when the command completes.
           2.     
I/O redirections are processed after variable assignments.
           3.     Errors cause a script that contains them to abort.
           4.     They are not valid function names.
           5.     Words, following a command preceded by 
++ that are in the
                  format of a variable assignment, are expanded with the
                  same rules as a variable assignment.  This means that
                  tilde substitution is performed after the 
= sign and field
                  splitting and file name generation are not performed.
       In addition to these built-in reserved command words, 
ksh93 also
       uses:       
: [ 
arg ... ]
                                  The command only expands parameters.       
.name [ 
arg ... ]
                                  If 
name is a function defined with the
                                  function 
name reserved word syntax, the
                                  function is executed in the current
                                  environment (as if it had been defined
                                  with the 
name() syntax.) Otherwise if 
name                                  refers to a file, the file is read in its
                                  entirety and the commands are executed in
                                  the current shell environment. The search
                                  path specified by 
PATH is used to find the
                                  directory containing the file. If any
                                  arguments 
arg are specified, they become
                                  the positional parameters while processing
                                  the 
. command and the original positional
                                  parameters are restored upon completion.
                                  Otherwise the positional parameters are
                                  unchanged. The exit status is the exit
                                  status of the last command executed.
SEE ALSO
       Intro(1), 
alias(1), 
break(1), 
builtin(1), 
cd(1), 
chmod(1), 
csh(1),       
disown(1), 
echo(1), 
exec(1), 
exit(1), 
find(1), 
getoptcvt(1),       
getopts(1), 
glob(1), 
hash(1), 
history(1), 
jobs(1), 
kill(1), 
ksh(1),       
ksh93(1), 
let(1), 
limit(1), 
login(1), 
logout(1), 
newgrp(1), 
nice(1),       
nohup(1), 
print(1), 
printf(1), 
pwd(1), 
read(1), 
readonly(1), 
set(1),       
sh(1), 
shift(1), 
sleep(1), 
suspend(1), 
test(1), 
time(1), 
times(1),       
trap(1), 
typeset(1), 
umask(1), 
wait(1), 
test(1B), 
chdir(2), 
chmod(2),       
creat(2), 
umask(2), 
getopt(3C), 
profile(5), 
environ(7)                              November 20, 2007            SHELL_BUILTINS(1)