我使用的函数代替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
。
答案 0 :(得分:2)
使用bash中的源代码会覆盖相同的函数,因此在这种情况下源顺序无关紧要(直到在加载相关函数之前调用函数。
要完成此工作,请将其添加到脚本的顶部:
shopt -s expand_aliases
此命令用于使别名在非交互式脚本中工作。