Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是一种在bash中禁用函数并强制内置执行的方法吗_Bash_Function - Fatal编程技术网

这是一种在bash中禁用函数并强制内置执行的方法吗

这是一种在bash中禁用函数并强制内置执行的方法吗,bash,function,Bash,Function,我正在为测试内置编写一个包装函数,该函数假设在每次测试后打印出返回值: # function test() { test $*; echo $?; } 当然,当我运行它时,它会递归地运行,每次到达test时都会调用它自己,因为在函数列表之后会检查内置列表。这是一种将搜索限制为内置的方式吗?例如,在它前面加上一些魔术字符串?是的,有适当命名的魔术字符串、内置的和命令: $ function test() { command test $*; echo $?; } # Looks for te

我正在为
测试
内置编写一个包装函数,该函数假设在每次测试后打印出返回值:

# function test() { test $*; echo $?; }

当然,当我运行它时,它会递归地运行,每次到达
test
时都会调用它自己,因为在函数列表之后会检查内置列表。这是一种将搜索限制为内置的方式吗?例如,在它前面加上一些魔术字符串?

是的,有适当命名的魔术字符串、
内置的
命令

$ function test() { command test $*; echo $?; }   # Looks for test in PATH.
$ test foo
0
$ test 1 -gt 2
1
$ function test() { builtin test $*; echo $?; }   # Uses builtin.
$ test 1 -gt 0
0

命令
方式的优点是它是POSIX,而
内置
则不是。

是的,有适当命名的魔术字符串,
内置
命令

$ function test() { command test $*; echo $?; }   # Looks for test in PATH.
$ test foo
0
$ test 1 -gt 2
1
$ function test() { builtin test $*; echo $?; }   # Uses builtin.
$ test 1 -gt 0
0

命令
方式的优点是它是POSIX,而
内置
不是。

你不能重命名包装器函数吗?
$help-builtin
@DigvijayS,不,我想包装一个真正的测试内置,你不想重命名包装器函数吗?
$help-builtin
@DigvijayS,不,我想包装一个真正的测试内置