bash:强制函数来调用别名
问题描述:
我有一个函数,我用它代替cd
,并且我有cd
别名来调用它。我的问题是,是否可以强制所有函数和脚本通过别名调用我的cd_func
,而不是直接调用cd
。bash:强制函数来调用别名
下面是一个使用ls
一个例子,因为它更简单:
.myfile:
ls_func(){
echo "function called"
dir
}
alias ls=ls_func
.notmyfile
ls_func2(){
ls
}
需要注意的是.notmyfile
是之前采购的这一点很重要.myfile
是。我想要的是强制ls_func2
直接拨打ls_func
而不是ls
。
答
采购在bash覆盖它们是相同的功能,所以在这种情况下,源顺序并不重要(直到你调用一个函数加载相关功能之前。
为了使这项工作将其添加到顶部您的脚本:?
shopt -s expand_aliases
这个命令是用来做走样工作在非交互式脚本
在'cd_func'的顶部或整个源文件的顶部 – ewok
最好是在顶部的文件,但在创建之前别名也应该是足够的。 –
所以我遇到了问题。我在源文件的顶部有命令。当我加载一个新的终端时,'ls_func2'不会调用'ls_func'(即它不通过别名)。我必须手动来源我的'.bash_profile'才能使它工作。 – ewok