Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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_Shell - Fatal编程技术网

当bash函数具有相同名称时调用程序

当bash函数具有相同名称时调用程序,bash,shell,Bash,Shell,我的bash脚本中有以下函数: make() { cd Python-3.2 make } 在该脚本中调用make时,将调用该函数,该函数将递归。函数内部对make的调用实际上应该调用外部make实用程序。除了重命名我的make函数,实现这一点最干净的方法是什么?使用程序的完整路径。例如/usr/bin/make 如果不知道完整路径,可以使用which实用程序,如: $(which make) 这将找到完整路径并执行make您可以使用内置的命令来抑制shell函数查找 com

我的bash脚本中有以下函数:

make() {
    cd Python-3.2
    make
}

在该脚本中调用make时,将调用该函数,该函数将递归。函数内部对
make
的调用实际上应该调用外部make实用程序。除了重命名我的make函数,实现这一点最干净的方法是什么?

使用程序的完整路径。例如
/usr/bin/make

如果不知道完整路径,可以使用
which
实用程序,如:

$(which make)

这将找到完整路径并执行
make

您可以使用内置的
命令来抑制shell函数查找

command:command[-pVv]command[arg…]
执行简单命令或显示有关命令的信息。
使用参数运行命令以抑制shell函数查找或显示
有关指定命令的信息。可以用来调用命令
当存在同名函数时,在磁盘上。
选项:
-p为路径使用默认值,该路径保证可以找到所有路径
标准实用程序
-v打印与内置的“type”类似的命令说明
-V打印每个命令的详细描述
退出状态:
返回命令的退出状态,如果未找到命令,则返回失败。

与使用
实用程序相比,这种方法的一个好处是它可以避免启动额外的进程。