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

4.2 Bash的内建命令

本节介绍在Bash中独有的或已扩充的内建命令。其中的一些命令是POSIX标准中指定的。

alias

alias [-p] [name[=value] …]

如果不使用参数或-p选项,alias在标准输出中打印别名的列表,打印格式为能重用为输入的形式。如果使用了参数,则为value定义了名称为name的别名。如果没有给定value,则打印别名的namevalue。关于别名的描述请参阅别名


bind

bind [-m keymap] [-lpsvPSV]

bind [-m keymap] [-q function] [-u function] [-r keyseq]

bind [-m keymap] -f filename

bind [-m keymap] -x keyseq:shell-command

bind [-m keymap] keyseq:function-name

bind readline-command

显示当前Readline(请参阅命令行编辑)键和函数绑定,绑定键序列到Readline函数或者宏,或者,设置Readline变量。每一个非选项参数是一个命令,该命令会出现在一个Readline初始化文件中(请参阅Readline初始化文件),但是,每个绑定或命令必须作为一个单独的参数传送,例如,‘"\C-x\C-r":re-read-init-file’。
如果有参数,则含义如下:

-m keymap

使用keymap作为键盘映射表而影响后续绑定。可以接受的keymap名字是emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, 和 vi-insertvi等价于vi-command;emacs等价于emacs-standard

-l

列出所有Readline函数的名字。

-p

显示Readline函数名字和绑定,格式为可用于输入或者用在Readline初始化文件中。

-P

列出当前的Readline函数名和绑定。

-v

显示Readline变量名字和值,格式为可用于输入或者用在Readline初始化文件中。

-V

列出当前的Readline变量名和绑定。

-s

显示绑定到宏的Readline键序列和该宏的输出字符串,格式为可用于输入或者用在Readline初始化文件中。

-S

显示绑定到宏的Readline键序列和该宏的输出字符串。

-f filename

filename读入键绑定。

-q function

查询哪个键调用了function

-u

解除所有绑定到function的键。

-r keyseq

删除所有当前对keyseq的绑定。

-x keyseq:shell-command

不管keyseq是否被输入,都执行shell-command。当shell-command被执行时,shell设置READLINE_LINE变量为Readline行缓冲区的内容,READLINE_POINT变量为插入点的当前位置。如果执行的命令改变了READLINE_LINE或者READLINE_POINT的值,则新的值在编辑状态被反映。

返回状态是0,除非有无效选项或者发生错误。

builtin

builtin [shell-builtin [args]]

运行一个shell的内建命令,传递指定参数给该内建命令,并返回它的退出状态。当定义一个和shell内建命令具有相同名字的shell函数时,这是非常有用的,可以在函数中保留内建命令的功能。如果shell-builtin不是shell内建命令时,返回状态是非零值。


caller

caller [expr]

返回任何活动的子程序调用(使用.或者source执行的shell函数或脚本)。
没有expr时,caller显示当前子程序调用的行号和源文件名。如果expr是一个非负的整数,caller显示当前执行的调用堆栈中的对应位置的行号、子程序名称和对应的源文件。可以使用额外的信息,例如,打印一个堆栈跟踪。当前帧是第0帧。
返回值是0,除非shell不执行子程序调用,或者expr不能对应到调用堆栈中的一个有效的位置。

command

command [-pVv] command [arguments …]

忽略任何名为command的shell函数,带arguments运行command。只有shell内置命令或通过搜索PATH发现的命令被执行。如果有一个叫做ls的shell函数,在函数中运行'command ls'会执行外部命令ls,而不是递归调用该函数。 -p选项意味着使用默认值即PATH,以保证能找到所有的标准实用工具程序。如果找不到command,或者发生错误,并且command的退出状态为其他,则返回的状态是127。
如果使用了-V或-v选项,则打印command的描述。 -v选项会导致显示一个单词,该单词表示调用command的命令或文件名;-V选项产生一个更详细的描述。在这种情况下,如果command被找到,则返回值是零,否则是非零值。

declare

declare [-aAfFilrtux] [-p] [name[=value] …]

声明变量并设置变量的属性。如果没有给出name,则显示变量的值。
-p选项将显示每个name的属性和值。当指定name参数并使用-p选项时,其他选项会被忽略。
当使用-p选项,且没有name参数时,declare将显示具有由其他选项指定的属性的变量的属性和值;如果没有提供其他选项,则declare将显示所有shell变量的属性和值。 -f选项将限制仅显示shell函数。
-F选项阻止显示函数定义;仅仅打印函数名和属性。如果使用命令shopt(见内建命令shopt)启用了shell选项extdebug,则同时显示该函数所在源文件名和该函数被定义的行号。 -F隐含着-f。
-g选项强制创建或修改全局变量,即使declare在shell函数中执行。在所有其他情况下,它会被忽略。
下列选项可以用来把输出限制在具有指定属性的变量,或给变量设置属性:

-a

每个name是一个索引数组变量(见数组)。

-A

每个name是一个关联数组变量(见数组)。

-f

仅使用函数名。

-i

变量按照整数来处理;给变量赋值时,执行算术运算(见shell算术)。

-l

给变量赋值时,所有大写字母转换成小写字母。大写属性被关闭。

-r

使name成为只读变量。这些变量名不能被再赋值或取消。

-t

给每个name增加trace属性。被跟踪的函数继承调用shell的DEBUG和RETURN陷阱。对变量来说,trace属性没有特别意义。

-u

变量被赋值时,所有小写字母转换成大写字母。小写属性被关闭。

-x

标记每个name,通过环境把它们导出到后续命令中。

使用'+',而不是' - '关闭属性,而作为例外,'+a'不能用来销毁一个数组变量,'+r'将不会移除只读属性。在函数中使用时,除非使用'-g'选项,declare使每个name成为局部变量,相当于local命令。如果name后面是=value,变量的值被设置为value
返回值是零,除非遇到了无效的选项,或者试图使用'-f foo=bar‘定义函数,试图赋值给一个只读变量,试图不使用复合赋值语法(请参阅阵列)给一个数组变量赋值,或者,其中一个name不是一个有效的shell变量名,或者试图关闭只读变量的只读状态,试图关闭一个数组变量的数组状态,试图使用-f显示一个不存在的函数。


原文链接:http://www.gnu.org/software/bash/manual/bash.html#Bash-Builtins



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值