bash参考手册之4(shell内建命令)续三
4.2 Bash的内建命令 续
echo
echo [-neE] [arg …]
输出的args之间用空格隔开,以一个换行符结束。返回的状态始终为0。如果指定了-n,其后的换行符被抑制。如果使用-e选项,则启用对后续反斜杠转义字符的解释。 -E选项禁用对这些转义字符解释,即使系统默认解释转义字符。shell选项
xpg_echo 可以用来动态地决定echo是否默认启用扩展这些字符。echo不解释指选项的结束的 -- 。
echo解释如下转义字符序列:
\a
响铃
\b
退格键
\c
抑制后续输出
\e
\E
转义
\f
换页
\n
换行
\r
回车
\t
水平tab
\v
垂直tab
\\
反斜线
\0nnn
8bit字符,值为八进制的nnn(0到3位八进制数)
\0xHH
8bit字符,值为十六进制的HH(1或2位十六进制数)
\uHHHH
Unicode (ISO/IEC 10646)字符,值是十六进制的HHHH(1到4位十六进制数)
\uHHHHHHHH
Unicode (ISO/IEC 10646)字符,值是十六进制的HHHHHHHH(1到8位十六进制数)
enable
enable [-a] [-dnps] [-f filename] [name …]
启用和禁用shell内建命令。禁用内建命令,将允许一个磁盘命令——其名字和shell内建命令同名,在没有指定完整的路径名的情况下执行,即使shell通常会在搜索磁盘命令之前搜索内建命令。如果使用了-n选项,则names将被禁用。否则启用names。例如,要使用通过$PATH找到的test代替shell内建命令test: ‘enable -n test’
。
如果使用-p选项,或没有name参数,则打印shell的内建命令列表。由于没有其他的参数,该列表包含所有启用的shell内建命令。 -a选项列出每一个内置命令,并指示该命令是否启用。
使用-f选项意味着在支持动态加载的系统上,从共享目标filename加载新的内建命令name。-d选项将删除由-f加载的内置命令。
如果没有选项,则显示shell内建命令的列表。 -s选项仅仅能启用POSIX特殊内建命令。如果同时使用-f 和-s选项,则新的内建命令成为一个特殊的内建命令(见特殊内建命令)。
返回状态是零,除非name不是一个shell的内建命令,或从共享目标加载新的内建命令时发生错误。
help
help [-dms] [pattern]
显示关于内建命令的帮助信息。如果指定了pattern,help提供所有匹配pattern的命令的详细帮助,否则打印内建命令列表。
-d
显示每个pattern的简短描述
-m
以manpage格式显示每个pattern的描述
-s
显示每个pattern的用法简介
返回状态是0,除非没有匹配pattern的命令。
let内建命令可以对shell变量进行算术运算。每个expression按照下面的(见Shell运算)的规则计算。如果最后一个expression的值是0,let返回1;否则返回0。let expression [expression]
local
local [option] name[=value] …
对于每个参数,创建一个名为name的局部变量,并赋值value。option可以是任何declare接受的选项。local只能用在一个函数内部,它使得变量name的可见的范围被限制到该函数和它的子函数。返回状态是零,除非local在函数外使用,name是无效的,或者name是只读变量。
logout
logout [n]
退出一个登录shell,返回状态n到该shell的父shell。
mapfile
mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [
-C callback] [-c quantum] [array]
从标准输入中读取行到索引数组变量array中,或者,如果有-u选项时,从文件描述符fd读取内容。变量MAPFILE是缺省的array。选项具有以下含义:
-n
复制最多count行。如果count是0,则复制所有的行。
-O
从索引位置origin开始给array赋值。缺省索引是0。
-s
放弃开头读入的count行。
-t
从读入的每一行中,删除尾部的newline。
-u
从文件描述符fd读入行。
-C
每次读入quantum行时计算callback。-c选项指定quantum。
-c
指定每次调用callback之间读入的行数。
如果指定-C时没有指定-c,则默认的quantum是5000。当调用callback时,把下一个要被赋值的数组元素和相应的读入行作为附加参数。该行被读取后,调用callback,但在给数组元素赋值之前。
如果没有指定一个明确的origin,mapfile将在赋值前清除array。
mapfile成功返回,除非有一个无效的选项,或者无效的选项参数,无效的array,或者不能被赋值,或者array不是索引数组。