bash参考手册之四(shell内建命令)续四
2013-03-22 16:38
363 查看
4.2 Bash的内建命令 续
printf
printf [-v var] format [arguments]
按照format的控制,把格式化的arguments输出到标准输出。 -v选项使输出内容赋值给变量var,而不是打印到标准输出。
format是一个字符串,其中包含三种类型的对象:普通字符,它们被简单地复制到标准输出;字符转义序列,它们被转换并复制到标准输出;格式规范,每一个格式规范控制打印后续的argument。除了标准的printf(1)格式,printf解释下列扩展:
%b
使printf扩展对应argument中的反斜杠转义序列,(除了‘\c’终止输出,在'\'','\"'和‘\;’中的反斜杠不会被删除,以'\0'开头的8进制序列可包含4位数字。)
%q
使printf输出对应argument的格式,能够作为shell的输入。
%(datefmt)T
使printf输出的日期时间字符串,是使用strftime(3)命令和参数datefmt的结果。对应的argument是一个整数,代表从公元纪元以来的秒数。有两个特殊的参数值:-1表示当前时间,-2代表shell被调用的时间。
没有对应格式说明符的argument被视为C语言常量,除非允许开头有加号或减号,如果开头字符是一个单引号或双引号,该argument的值是后续字符的ASCII值。
必要时,重复使用format以处理所有的argument。如果该format需要的argument数量多于给定的argument时,额外的格式规范的行为是如同处理一个零值或空字符串(如适用)。
成功返回0,非零表示失败。
read
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name …]
从标准输入中读取一行,或从-u选项的参数文件描述符fd读入一行,第一个单词被赋值到第一个name,第二个单词被赋值到第二个name,以此类推。多余的单词和中间的分隔符都赋值给最后一个name。如果从输入流读取的单词比name的数量少,则其余的name是空值。IFS变量值中的字符用于分割单词。反斜杠字符“\”可用于去除下一个字符的特殊含义和续行。如果没有提供name,读入的行被赋值到变量REPLY。返回码是零,除非遇到文件结束EOF,read超时(在这种情况下,返回的代码大于128),或参数-u后面的文件描述符无效。
选项的含义如下:
-a aname
把单词赋值给数组变量aname,索引从0开始。aname中的所有元素在赋值之前被删除。其他name参数被忽略。
-d delim
delim的第一个字符,取代换行符,被用来终止输入行。
-e
使用Readline(见命令行编辑)获取行。Readline使用当前(或者默认情况下,如果行编辑没有提前激活)编辑设置。
-i text
如果使用Readline读入行,在编辑开始前,先把text放到编辑缓冲区。
-n nchars
read在读取nchars个字符后返回,而不用等到一整行完全输入。但是如果遇到分隔符时字符数小于nchars,则优先处理分隔符。
-N nchars
read在读取恰巧nchars个字符后返回,而不用等到一整行完全输入,除非遇到EOF或者read超时。遇到分隔符,也不做特殊处理,直到字符数达到nchars,才返回。
-p prompt
在读取输入前,显示prompt,且不带后续换行符。仅当输入来自终端时,才显示prompt。
-r
如果给定这个选项,反斜杠不作为转义符处理。反斜杠被当做行的内容。特别是,反斜杠-换行符组合不再当做续行。
-s
安静模式。如果输入来自于终端,字符不回显。
-t timeout
如果一行的输入没有在timeout秒内读入,则read超时或者返回失败。timeout可以是一个带小数的十进制数字。仅在read从终端、管道、或者其他特殊文件读取输入时,这个选项才有效。从普通文件读入时,该选项无效。如果timeout是0,则如果特殊文件描述符的输入可用时,read返回成功,其他情况则失败。如果发生超时,则退出状态大于128。
-u fd
从文件描述符fd读取输入。
readarray
readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [
-C callback] [-c quantum] [array]
从标准输入读取行到索引变量array,或者,如果有-u选项则从文件描述符fd读取。
source
source filename
和.同义。(见Bourne Shell内建命令)
type
type [-afptP] [name …]
对于每一个name,指出如果该name当做命令名使用时,如何被系统解释。
如果使用-t选项,当name是别名、shell函数、shell内建命令、磁盘文件、或者shell保留字时,type打印这些单词中的一个——‘alias’, ‘function’, ‘builtin’, ‘file’ ‘keyword’。如果找不到name,则不打印,且type返回一个失败状态。
如果使用-p选项,type或者返回被执行的磁盘文件名,或者,当-t不能返回‘file’时,返回结果为空。
-P选项,则强制在路径中搜索name,即使-t不能返回‘file’。
如果一个命令被哈希了,-p和-P打印哈希值,该文件不一定首次出现在$PATH中。
如果使用-a选项,type返回所有包含名为file的可执行文件的位置。当且仅当不同时使用-p选项时,结果中包括别名和函数。
如果使用-f选项,type不会试图查找shell函数,就像command内建命令。
如果所有的name都被找到,则返回状态是0,任何一个找不到都返回非零值。
typeset
typeset [-afFrxi] [-p] [name[=value] …]
typeset命令是为了兼容Korn shell而提供的,然而,因为declare内建命令的出现,它已经被废弃了。
ulimit
ulimit [-abcdefilmnpqrstuvxHST] [limit]
ulimit用于对于由shell启动的线程的可用资源的控制,仅在允许这种控制的系统上可用。命令选项含义如下:
-S
修改和报告某个资源的软限制。
-H
修改和报告某个资源的硬限制。
-a
报告所有当前的限制。
-b
socket的最大缓冲尺寸。
-c
可以创建的核心文件的最大尺寸。
-d
一个线程的数据段的最大尺寸。
-e
最大规划优先级(“nice”)。
-f
shell和其子shell写文件的最大尺寸。
-i
待处理信号的最大数目。
-l
可以被锁定的内存的最大尺寸。
-m
最大驻留集合的尺寸(很多系统不遵循此限制)。
-n
打开文件描述符的最大数目(很多系统不允许设置这个值)。
-p
管道缓冲区大小。
-q
POSIX消息队列的最大字节数。
-r
最大实时规划优先级。
-s
最大堆栈尺寸。
-t
最大cpu时间,单位是秒。
-u
单一用户可用的最大进程数目。
-v
shell可用的最大虚拟内存,在某些系统上,也包括该shell的子shell。
-x
文件锁的最大个数。
-T
线程的最大个数。
如果给定limit,则它是指定资源的新值;特殊limit值hard,soft和unlimited表示当前的硬限制,当前软限制,和无限制。硬限制的值一旦被设置,就不能被非root用户增加;软限制可以增加到硬限制的值。否则,指定资源的软限制的当前值被打印出来,除非提供-H选项。当设置新的限制时,如果既没有-H,也没有-S选项,则同时设置硬限制和软限制。如果没有给出选项,那么-f是缺省选项。值是以1024字节为单位增加,除了-t选项,该选项的单位是秒,而-p是以512字节块为单位,还有-n和-u,是不能改变的。
返回状态是0,除非有无效选项或者参数,或者设定限制时发生错误。
unalias
unalias [-a] [name … ]
从别名列表中删除每一个name。如果有-a选项,所有别名被删除。别名请参看别名中的描述。
printf
printf [-v var] format [arguments]
按照format的控制,把格式化的arguments输出到标准输出。 -v选项使输出内容赋值给变量var,而不是打印到标准输出。
format是一个字符串,其中包含三种类型的对象:普通字符,它们被简单地复制到标准输出;字符转义序列,它们被转换并复制到标准输出;格式规范,每一个格式规范控制打印后续的argument。除了标准的printf(1)格式,printf解释下列扩展:
%b
使printf扩展对应argument中的反斜杠转义序列,(除了‘\c’终止输出,在'\'','\"'和‘\;’中的反斜杠不会被删除,以'\0'开头的8进制序列可包含4位数字。)
%q
使printf输出对应argument的格式,能够作为shell的输入。
%(datefmt)T
使printf输出的日期时间字符串,是使用strftime(3)命令和参数datefmt的结果。对应的argument是一个整数,代表从公元纪元以来的秒数。有两个特殊的参数值:-1表示当前时间,-2代表shell被调用的时间。
没有对应格式说明符的argument被视为C语言常量,除非允许开头有加号或减号,如果开头字符是一个单引号或双引号,该argument的值是后续字符的ASCII值。
必要时,重复使用format以处理所有的argument。如果该format需要的argument数量多于给定的argument时,额外的格式规范的行为是如同处理一个零值或空字符串(如适用)。
成功返回0,非零表示失败。
read
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name …]
从标准输入中读取一行,或从-u选项的参数文件描述符fd读入一行,第一个单词被赋值到第一个name,第二个单词被赋值到第二个name,以此类推。多余的单词和中间的分隔符都赋值给最后一个name。如果从输入流读取的单词比name的数量少,则其余的name是空值。IFS变量值中的字符用于分割单词。反斜杠字符“\”可用于去除下一个字符的特殊含义和续行。如果没有提供name,读入的行被赋值到变量REPLY。返回码是零,除非遇到文件结束EOF,read超时(在这种情况下,返回的代码大于128),或参数-u后面的文件描述符无效。
选项的含义如下:
-a aname
把单词赋值给数组变量aname,索引从0开始。aname中的所有元素在赋值之前被删除。其他name参数被忽略。
-d delim
delim的第一个字符,取代换行符,被用来终止输入行。
-e
使用Readline(见命令行编辑)获取行。Readline使用当前(或者默认情况下,如果行编辑没有提前激活)编辑设置。
-i text
如果使用Readline读入行,在编辑开始前,先把text放到编辑缓冲区。
-n nchars
read在读取nchars个字符后返回,而不用等到一整行完全输入。但是如果遇到分隔符时字符数小于nchars,则优先处理分隔符。
-N nchars
read在读取恰巧nchars个字符后返回,而不用等到一整行完全输入,除非遇到EOF或者read超时。遇到分隔符,也不做特殊处理,直到字符数达到nchars,才返回。
-p prompt
在读取输入前,显示prompt,且不带后续换行符。仅当输入来自终端时,才显示prompt。
-r
如果给定这个选项,反斜杠不作为转义符处理。反斜杠被当做行的内容。特别是,反斜杠-换行符组合不再当做续行。
-s
安静模式。如果输入来自于终端,字符不回显。
-t timeout
如果一行的输入没有在timeout秒内读入,则read超时或者返回失败。timeout可以是一个带小数的十进制数字。仅在read从终端、管道、或者其他特殊文件读取输入时,这个选项才有效。从普通文件读入时,该选项无效。如果timeout是0,则如果特殊文件描述符的输入可用时,read返回成功,其他情况则失败。如果发生超时,则退出状态大于128。
-u fd
从文件描述符fd读取输入。
readarray
readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [
-C callback] [-c quantum] [array]
从标准输入读取行到索引变量array,或者,如果有-u选项则从文件描述符fd读取。
source
source filename
和.同义。(见Bourne Shell内建命令)
type
type [-afptP] [name …]
对于每一个name,指出如果该name当做命令名使用时,如何被系统解释。
如果使用-t选项,当name是别名、shell函数、shell内建命令、磁盘文件、或者shell保留字时,type打印这些单词中的一个——‘alias’, ‘function’, ‘builtin’, ‘file’ ‘keyword’。如果找不到name,则不打印,且type返回一个失败状态。
如果使用-p选项,type或者返回被执行的磁盘文件名,或者,当-t不能返回‘file’时,返回结果为空。
-P选项,则强制在路径中搜索name,即使-t不能返回‘file’。
如果一个命令被哈希了,-p和-P打印哈希值,该文件不一定首次出现在$PATH中。
如果使用-a选项,type返回所有包含名为file的可执行文件的位置。当且仅当不同时使用-p选项时,结果中包括别名和函数。
如果使用-f选项,type不会试图查找shell函数,就像command内建命令。
如果所有的name都被找到,则返回状态是0,任何一个找不到都返回非零值。
typeset
typeset [-afFrxi] [-p] [name[=value] …]
typeset命令是为了兼容Korn shell而提供的,然而,因为declare内建命令的出现,它已经被废弃了。
ulimit
ulimit [-abcdefilmnpqrstuvxHST] [limit]
ulimit用于对于由shell启动的线程的可用资源的控制,仅在允许这种控制的系统上可用。命令选项含义如下:
-S
修改和报告某个资源的软限制。
-H
修改和报告某个资源的硬限制。
-a
报告所有当前的限制。
-b
socket的最大缓冲尺寸。
-c
可以创建的核心文件的最大尺寸。
-d
一个线程的数据段的最大尺寸。
-e
最大规划优先级(“nice”)。
-f
shell和其子shell写文件的最大尺寸。
-i
待处理信号的最大数目。
-l
可以被锁定的内存的最大尺寸。
-m
最大驻留集合的尺寸(很多系统不遵循此限制)。
-n
打开文件描述符的最大数目(很多系统不允许设置这个值)。
-p
管道缓冲区大小。
-q
POSIX消息队列的最大字节数。
-r
最大实时规划优先级。
-s
最大堆栈尺寸。
-t
最大cpu时间,单位是秒。
-u
单一用户可用的最大进程数目。
-v
shell可用的最大虚拟内存,在某些系统上,也包括该shell的子shell。
-x
文件锁的最大个数。
-T
线程的最大个数。
如果给定limit,则它是指定资源的新值;特殊limit值hard,soft和unlimited表示当前的硬限制,当前软限制,和无限制。硬限制的值一旦被设置,就不能被非root用户增加;软限制可以增加到硬限制的值。否则,指定资源的软限制的当前值被打印出来,除非提供-H选项。当设置新的限制时,如果既没有-H,也没有-S选项,则同时设置硬限制和软限制。如果没有给出选项,那么-f是缺省选项。值是以1024字节为单位增加,除了-t选项,该选项的单位是秒,而-p是以512字节块为单位,还有-n和-u,是不能改变的。
返回状态是0,除非有无效选项或者参数,或者设定限制时发生错误。
unalias
unalias [-a] [name … ]
从别名列表中删除每一个name。如果有-a选项,所有别名被删除。别名请参看别名中的描述。
相关文章推荐
- bash参考手册之四(shell内建命令)续三
- bash参考手册之四(shell内建命令)续六
- bash参考手册之四(shell内建命令)续五
- bash参考手册之四(shell内建命令)续七
- bash参考手册之四(shell内建命令)续一
- bash参考手册之四(shell内建命令)续二
- bash参考手册之四(shell内建命令)
- bash参考手册之三(基本的Shell特性)续一
- bash参考手册之三(基本的Shell特性)续二
- bash参考手册之三(基本的Shell特性)续九
- bash参考手册之三(基本的Shell特性)续七
- bash参考手册之三(基本的Shell特性)
- bash参考手册之五(shell变量)续二
- bash参考手册之三(基本的Shell特性)续五
- bash参考手册之三(基本的Shell特性)续六
- bash参考手册之五(shell变量)续三
- bash参考手册之五(shell变量)续一
- bash参考手册之三(基本的Shell特性)续八
- bash参考手册之三(基本的Shell特性)续三
- bash参考手册之五(shell变量)