Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

while(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), ksh88(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 ksh(1), fc, hash, stop, suspend, times, and type are aliases by default.

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
alarm
ksh
++**alias
csh, ksh88, ksh
bg
csh, ksh88, ksh, sh
+*break
csh, ksh88, ksh, sh
builtin
ksh
case
csh, ksh88, ksh, sh
cd
csh, ksh88, ksh, sh
chdir
csh, sh
command
ksh
+*continue
csh, ksh88, ksh, sh
dirs
csh
disown
ksh
echo
csh, ksh88, ksh, sh
enum
ksh
+*eval
csh, ksh88, ksh, sh
+*exec
csh, ksh88, ksh, sh
+*exit
csh, ksh88, ksh, sh
++**export
ksh88, ksh, sh
false
ksh88, ksh
fc
ksh88, ksh
fg
csh, ksh88, ksh, sh
for
ksh88, ksh, sh
foreach
csh
function
ksh88, ksh
getopts
ksh88, ksh, sh
glob
csh
goto
csh
hash
ksh88, ksh, sh
hashstat
csh
hist
ksh
history
csh
if
csh, ksh88, ksh, sh
jobs
csh, ksh88, ksh, sh
kill
csh, ksh88, ksh, sh
let
ksh88, ksh,
limit
csh
login
csh, ksh88, ksh, sh
logout
csh
nice
csh
+*newgrp
ksh88, ksh, sh
nohup
csh
notify
csh
onintr
csh
popd
csh
print
ksh88, ksh
printf
ksh
pushd
csh
pwd
ksh88, ksh, sh
read
ksh88, ksh, sh
++**readonly
ksh88, ksh, sh
rehash
csh
repeat
csh
+*return
ksh88, ksh, sh
select
ksh88, ksh
+set
csh, ksh88, ksh, sh
setenv
csh
*shift
csh, ksh88, ksh, sh
source
csh
stop
csh, ksh88, ksh, sh
suspend
csh, ksh88, sh
switch
csh
test
ksh88, ksh, sh
time
csh
*times
ksh88, ksh, sh
*+trap
ksh88, ksh, sh
true
ksh88, ksh
type
ksh88, ksh, sh
++**typeset
ksh88, ksh
ulimit
ksh88, ksh, sh
umask
csh, ksh88, ksh, sh
+unalias
csh, ksh88, ksh
unhash
csh
unlimit
csh
+unset
csh, ksh88, ksh, sh
unsetenv
csh
until
ksh88, ksh, sh
vmap
ksh
vpath
ksh
*wait
csh, ksh88, ksh, sh
whence
ksh88, ksh
while
csh, ksh88, ksh, 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, ksh88, 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, ksh88 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, 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.

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

times(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), Intro(1), jobs(1), kill(1), ksh(1), ksh88(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), trap(1), typeset(1), umask(1), wait(1), chdir(2), chmod(2), creat(2), umask(2), getopt(3C), profile(5), environ(7)