bash:强制函数调用别名

时间:2017-06-29 17:30:21

标签: bash alias

我使用的函数代替cd,我有cd别名来调用它。我的问题是,是否可以强制所有函数和脚本通过别名调用cd_func,而不是直接调用cd

以下是使用ls的示例,因为它更简单:

.myfile

ls_func(){
    echo "function called"
    dir
}
alias ls=ls_func

.notmyfile

ls_func2(){
    ls
}

值得注意的是.notmyfile来源于.myfile之前。我想要的是强制ls_func2直接拨打ls_func而不是ls

1 个答案:

答案 0 :(得分:2)

使用bash中的源代码会覆盖相同的函数,因此在这种情况下源顺序无关紧要(直到在加载相关函数之前调用函数。

要完成此工作,请将其添加到脚本的顶部:

shopt -s expand_aliases

此命令用于使别名在非交互式脚本中工作。