手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

until(1)

名称

shell_builtins , case , for , foreach , function , if , repeat , select , switch , until , while - shell 命令解释程序内置命令

描述

shell 命令解释程序 csh(1)ksh(1)ksh88(1)sh(1) 具有特殊的内置命令。命令 caseforforeachfunctionifrepeatselectswitchuntilwhile 是可被 shell 识别的语法中的命令。这些命令在各自 shell 手册页中的 Commands 一节中进行了介绍。缺省情况下,在 ksh(1) 中,fchashstopsuspendtimestype 为别名。

下表中列出的其余命令出于效率或在命令调用之间共享数据等原因而内置到 shell 中。这些命令在各自的手册页中进行了介绍。

命令
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、特殊命令

允许对这些命令执行输入/输出重定向。文件描述符 1 是缺省输出位置。启用 "Job Control"(作业控制)后,将向 shell 的环境添加其他特殊命令

除了这些内置保留命令字,sh 还使用:

:

无影响;命令不执行任何操作。返回零退出代码。

.文件名称

读取和执行 filename 中的命令并返回。PATH 指定的搜索路径用于查找包含 filename 的目录。

C shell、csh

内置命令在 C shell 内执行。如果内置命令是流水线除最后一个组件之外的任意组件,则在子 shell 中执行该命令。除了这些内置保留命令字,csh 还使用:

:

空命令。此命令将被解释,但不执行任何操作。

Korn Shell、ksh88、特殊命令

允许输入/输出重定向。除非有指示,否则输出写在文件描述符 1 上,并且如果没有语法错误,退出状态为零。

前面有一个或两个 *(星号)的命令专门通过以下方式进行处理:

  1. 命令完成时,该命令前面的变量赋值列表仍然有效。

  2. 在变量赋值后进行 I/O 重定向。

  3. 脚本中包含的错误会导致其中止。

  4. 如果字的后面是前面加有 ** 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 = 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。

除了这些内置保留命令字,ksh88 还使用:

* : [ arg . . . ]

该命令仅扩展参数。

* .file [ arg . . . ]

读取完整的 file,然后执行命令。在当前 shell 环境中执行命令。PATH 指定的搜索路径用于查找包含 file 的目录。如果指定了任何参数 arg,则它们将成为位置参数。否则,将不会更改位置参数。退出状态是最后执行的命令的退出状态。循环终止测试。

Korn Shell、ksh、特殊命令

允许输入/输出重定向。除非有指示,否则输出写在文件描述符 1 上,并且如果没有语法错误,退出状态为零。

除了 :truefalseechonewgrplogin,所有内置命令均可用 -- 来表示选项结束。它们还将选项 --man 解释为要显示有关标准错误的手册页的请求,将 -? 解释为打印有关标准错误的使用消息的请求。

前面有一个或两个 + 的命令专门通过以下方式进行处理:

  1. 命令完成时,该命令前面的变量赋值列表仍然有效。

  2. 在变量赋值后进行 I/O 重定向。

  3. 脚本中包含的错误会导致其中止。

  4. 它们不是有效的函数名称。

  5. 如果字的后面是前面加有 ++ 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这意味着将在 = 符号之后执行波浪号替换,并且不执行字段分割和文件名生成。

除了这些内置保留命令字,ksh 还使用:

: [ arg . . . ]

该命令仅扩展参数。

.name [ arg . . . ]

如果 name 是使用函数 name 保留字语法定义的函数,则在当前环境中执行该函数(如同使用 name() 语法定义了该函数一样)。否则,如果 name 表示一个文件,则会读取整个文件并在当前的 shell 环境中执行命令。PATH 指定的搜索路径用于查找包含该文件的目录。如果指定了任何参数 arg,则在处理 . 命令时,这些参数将成为位置参数,并且原始位置参数会在完成后恢复。否则,位置参数保持不变。退出状态是最后执行的命令的退出状态。

另请参见

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)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)test(1)test(1B)time(1)times(1)trap(1)typeset(1)umask(1)wait(1)chdir(2)chmod(2)creat(2)umask(2)getopt(3C)profile(4)environ(5)