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)