赞
踩
unset [-fnv] [name],移除变量或函数名。-v选项,name和它引用的变量将被删除。-f选项,name和它引用函数定义将被删除。-n选项,name是一个带有nameref属性的变量,那么name会被删除,而它以引用的变量不会被删除。如果提供-f选项,则-n无效。如果没有指定任何选项,在name默认引用的是一个变量,如果没有这个名字的变量,任何具有该名称的函数都会被删除。只读变量和函数不能删除。返回状态为0,除非name是只读的。
alias [-p] [name[=value] …],如果没有参数或-p选项,alias将在标准输出上打印别名列表。如果指定了name和value,则会定义一个别名。如果只有name没有value,则会输出别名的name和value。
builtin [shell-builtin [args]],运行shell内置函数,将args传递给函数,并返回退出状态。在定义与shell内置函数同名的shell函数时非常有用,可以在函数中保留内置函数的功能。如果shell-builtin不是shell内置命令,则返回状态为非零。
caller命令返回当前活动的子程序调用(包括shell函数或者使用.或source命令执行的脚本)的上下文。如果未指定expr,caller显示当前子例程调用的源文件名和行号。如果expr是一个非负整数,caller显示行号、子程序名以及当前执行调用栈此位置对应的源文件名。可以使用这些额外信息进行堆栈跟踪。当前栈帧是0。返回值为0,除非shell没有执行子进程调用或expr不是调用堆栈中的有效位置。
- #!/bin/bash
- foo(){
- echo "foo invoked"
- caller
- }
- bar(){
- echo "bar invoked"
- caller 0
- }
- baz(){
- echo "baz invoked"
- caller
- echo "============"
- caller 0
- echo "============"
- caller 1
- echo "============"
- caller 2
- }
- baz2(){
- echo "baz2 invoked"
- baz
- }
- baz3(){
- echo "baz3 invoked"
- baz2
- }
- foo
- bar
- baz3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。