bash参考手册之四(shell内建命令)

来源:互联网 发布:网络转换器网通转电信 编辑:程序博客网 时间:2024/05/16 08:19

4 shell内建命令

•Bourne shell的内建命令:从Bourne shell继承的内建命令。
•Bash内建命令:Bash的内建命令表格。
•修改shell的行为:修改shell的属性和可选的行为的内建命令。
•特殊内建命令:POSIX专属的内建命令。
内建命令被包含在shell本身里。当一个内建命令作为一个简单的命令(见简单的命令)的第一个单词时,shell将直接执行该命令,而无需调用其他程序。对于通过分开的实用程序不可能实现,或者不方便获得的功能来说,内建命令是很必要的。
本节简要介绍了Bash继承自Bourne shell的内建命令,以及Bash独有的或在Bash中得到扩充的内建命令。
有几个内置命令将在其他章节中描述:提供了作业控制工具和Bash的接口的内建命令(见作业控制内建命令),目录栈(见目录栈内建命令),命令历史记录(见bash的历史内建命令),和可编程补全功能(见可编程补全内建命令)。
很多内建命令都被POSIX或Bash扩充了。
除非另有说明,每一个记录为接受前面带'-'的选项的内建命令都接受'-- '来表示选项的结尾。 :, true, false, 和 test内建命令不接受选项,不特殊处理'-- '。 exit, logout, break, continue, let, 和shift内建命令接受和处理以'-'开头而不带'--'的参数。其他接受参数但是没有说明接受选项的内建命令,把以‘-’开头的参数解释为无效的选项,并需要通过'--',以防止这种解释。


4.1 Bourne shell的内建命令

下面的shell内建命令都继承自Bourne shell的。这些命令都是按照POSIX标准内容实现的。

:(冒号)

: [arguments]

仅仅扩展arguments,和进行重定向。返回状态是零。

.(句号)

. filename [arguments]

当前shell环境中,读取和执行参数filename中的命令。如果filename不包含斜杠,使用PATH变量,寻找filename 。当Bash不在POSIX模式下,如果在$PATH中没有找到filename 的话,则在当前目录中搜索。如果提供了任何arguments,在执行filename时,它们成为位置参数。否则的位置参数都保持不变。返回状态是最后执行的命令的退出状态,或者,如果没有命令被执行,则是0。如果没有找到filename,或无法读取filename,返回状态是非零值。这个内建命令等价于source

break

break [n]

forwhileuntilselect循环中退出。如果提供了n时,从第n个封闭循环退出。 n必须大于或等于1。返回状态是零,除非n不大于或等于1。

cd

cd [-L|[-P [-e]]] [directory]

改变当前的工作目录到directory。如果没有给出directory,则使用shell变量HOME的值。如果shell变量CDPATH存在,把它作为搜索路径。如果directory以斜线开头,则不使用CDPATH。
-p选项意味着不跟随符号链接;默认情况,或带-L选项时,跟随符号链接。 如果-P和-e选项同时使用,并成功进行了目录的变化,而当前的工作目录不能被成功确定时,cd将返回一个失败的状态。如果directory是' - ',这是等同于$OLDPWD。
如果使用了来自CDPATH的非空目录名时,或者,如果' - '是第一个参数,并且目录的改变是成功的,新的工作目录的绝对路径被写到标准输出。
如果成功地改变了目录,则返回状态是零,否则返回非零。

continue

continue [n]

继续一个for,while,until,或者select循环的下一次迭代。如果指定了n,则继续执行第n个封闭循环。 n必须大于或等于1。返回状态是为零,除非n不大于或等于1。

eval

eval [arguments]

把参数连接在一起,形成一个命令,然后读取和执行,它的退出状态被返回当做eval的退出状态。如果没有参数,或只有空参数,返回值是零。

exec

exec [-cl] [-a name] [command [arguments]]

如果指定了command,则它取代shell,而不创建一个新的进程。如果使用-l选项,shell放置一个'-'到command的第零个参数的开头。这是login程序的做法。 -c选项会导致在一个空环境中执行command。如果使用-a,shell把name作为第零个参数传给command。如果没有指定command,可能会使用重定向去影响当前的shell环境。如果没有发生重定向错误,返回状态是0,否则返回状态是非零。

exit

exit [n]

退出shell,返回一个状态n到父shell。如果省略n,退出状态是最后执行的命令的状态。在shell终止之前执行任何EXIT上的陷阱。


原文链接:http://www.gnu.org/software/bash/manual/bash.html#Shell-Builtin-Commands



原创粉丝点击