zsh在函数中临时禁用别名
例如,我觉得zsh在函数中临时禁用别名,zsh,Zsh,例如,我觉得zsh会扩展别名,即使它是在函数中调用的 alias abc='echo abc' function fabc(){abc} 是否可以在此函数中禁用别名扩展 还有一个相关问题:是否可以在整个交互式shell中禁用别名扩展?您可以使用禁用特定别名 unalias abc 或所有具有 unalias-a 另一种解决方案是强制命令不使用带反斜杠的别名 \abc 这个问题在函数中使用时更难。。。从中可以看出,您无法在函数中定义或取消定义别名 别名在读取函数定义时展开,而不是在 函数被
zsh
会扩展别名,即使它是在函数中调用的
alias abc='echo abc'
function fabc(){abc}
是否可以在此函数中禁用别名扩展
还有一个相关问题:是否可以在整个交互式shell中禁用别名扩展?您可以使用禁用特定别名
unalias abc
或所有具有
unalias-a
另一种解决方案是强制命令不使用带反斜杠的别名
\abc
这个问题在函数中使用时更难。。。从中可以看出,您无法在函数中定义或取消定义别名
别名在读取函数定义时展开,而不是在
函数被执行,因为函数定义本身就是一个
复合命令
所以你可能想做一些类似的事情
alias abc='echo abc'
MyAlias=$(别名-L)
尤纳利亚斯-a
函数fabc(){
abc
}
eval$myalias;取消设置我的别名
fabc
abc
您可以使用禁用特定别名
unalias abc
或所有具有
unalias-a
另一种解决方案是强制命令不使用带反斜杠的别名
\abc
这个问题在函数中使用时更难。。。从中可以看出,您无法在函数中定义或取消定义别名
别名在读取函数定义时展开,而不是在
函数被执行,因为函数定义本身就是一个
复合命令
所以你可能想做一些类似的事情
alias abc='echo abc'
MyAlias=$(别名-L)
尤纳利亚斯-a
函数fabc(){
abc
}
eval$myalias;取消设置我的别名
fabc
abc
前两种选择是不可逆的。我只想在函数中暂时禁用它们。如果加载的插件使用了某个我碰巧设置了别名的命令,它会影响插件的行为吗?如何避免这种情况?您可以将子shell与()
一起使用,或者如图所示保存别名。前两种选择是不可逆的。我只想在函数中暂时禁用它们。如果加载的插件使用了某个我碰巧设置了别名的命令,它会影响插件的行为吗?如何避免这种情况?您可以使用带有()
的子shell,或者保存别名,如图所示。