当心PowerShell命名陷阱


看看这段代码是不是有点诡异:

PS C:\> function r { "This never runs" }

PS C:\> r
function r { "This never runs" }

PS C:\>

我本来要执行函数r,但是函数没有执行,却把函数的定义代码返回了。
原因其实是我们定义的函数名和PowerShell内置的别名冲突了:

PS C:\> Get-Alias r

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------                                        
Alias           r -> Invoke-History

所以对于PowerShell内置的别名需要熟悉,因为它们是PowerShell的亲儿子,比其他函数和命令更有优先权和话语权。 更好的做法是把自己的函数或者命令名称成动词+名词的标准格式。

原文链接:Beware of Aliases

×用微信扫描并分享
本文链接: https://www.pstips.net/beware-of-aliases.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注