Powershell-从另一个函数调用函数

Powershell-从另一个函数调用函数,powershell,Powershell,在PowersShellV4中,可以从另一个函数调用函数吗?如果我这样做的话,我会做一些不好的事情吗 假设我有以下两个功能: function secondFunction($username){ Write-Out "The Next Step is...." } function myFunction($username){ Write-Output Welcome $username secondFunction($userName) } 上面

在PowersShellV4中,可以从另一个函数调用函数吗?如果我这样做的话,我会做一些不好的事情吗

假设我有以下两个功能:

  function secondFunction($username){
         Write-Out "The Next Step is...."
    }

 function myFunction($username){
  Write-Output Welcome $username
  secondFunction($userName)
} 

上面的代码可以吗?这样做的缺点是什么?

理想的PowerShell,也就是说,函数的存在方式应该是它们自己的孤岛。它们可以通过调用无限多个cmdlet构建,并运行多行代码,但为了简单性和可支持性,它们应该是独立的

您是否有可能以不同的方式对此进行攻击,这样您就可以拥有一条获得相同结果的管线,例如:

myFunction (outputs an object $username with props) | secondFunction (accepts pipeline input and does the second step)
一旦您使用完这些工具,对于大多数人来说,这将更容易理解,并提供故障排除和支持


也就是说,从函数内部调用函数并没有违反我所知道的基本规则,但如果必须这样做,我建议在函数的帮助中明确说明这一点。

这没什么错。。。你能说得更具体一点吗?除了应该在
myFunction
之前声明
secondFunction
之外,没有什么错,否则这将无法正常工作。@Matt-谢谢。我会改正的。我不太同意这种概括。如果您编写了一个充满函数的模块,为什么不想尝试避免在其他函数中使用这些函数呢?这难道不是能够选择哪些函数在模块中导出,哪些函数不导出的一部分好处吗?这样您就可以隐藏“private”或“helper”函数了?说每一个函数都应该是“一个岛”对我来说是愚蠢的,因为它促进了大而丑陋的“意大利面代码”函数的创建。我听到了你的话,不会鼓励任何人重复意大利面代码。尽管如此,PowerShell的核心主干还是关于管道和制作完成特定功能的小型目标工具。如果OP打算以“powershell风格”的收费来解决他的问题,并提出一种基于管道的方法来使用他的功能,我认为这将是两个世界中最好的,无论是功能上还是理想上。好吧,我也同意这一点!