我认为zsh
也会扩展别名,即使它在函数中被调用
alias abc='echo abc'
function fabc(){abc}
是否可以在此功能中禁用别名扩展?
另一个相关的问题:是否可以在整个交互式shell中禁用别名扩展?
答案 0 :(得分:1)
您可以使用以下方式禁用特定的别名
unalias abc
或所有带有
的别名unalias -a
另一种解决方案是强制命令不要使用带反斜杠的别名
\abc
在函数中使用时,此问题更加困难...从here看来,您无法在函数中定义或取消定义别名。
在读取函数定义时(而不是在 执行函数,因为函数定义本身就是一个 复合命令。
所以您可能想做类似的事情
alias abc='echo abc'
myaliases=$(alias -L)
unalias -a
function fabc(){
abc
}
eval $myaliases; unset myaliases
fabc
abc