bash: 强制函数调用别名
bash: force function to call 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
。
bash 中的源代码会覆盖相同的函数,因此在这种情况下源代码顺序无关紧要(直到您在加载相关函数之前调用函数。
要完成这项工作,请将其添加到脚本的顶部:
shopt -s expand_aliases
此命令用于在非交互式脚本中使用别名。
我有一个函数用来代替 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
。
bash 中的源代码会覆盖相同的函数,因此在这种情况下源代码顺序无关紧要(直到您在加载相关函数之前调用函数。
要完成这项工作,请将其添加到脚本的顶部:
shopt -s expand_aliases
此命令用于在非交互式脚本中使用别名。