如何让"pwsh -c {...}"在Ubuntu上通过powershell命令的表达式结果?
How to get "pwsh -c {...}" to pass through the powershell command's expression result on Ubuntu?
在我的 Ubuntu 16 服务器上的 PHP 脚本中,我希望能够检查 Powershell 是否安装了某个模块,我试图通过行
pwsh -c {Get-Module -ListAvailable -Name "VMware.PowerCLI"} && echo 1 || echo 0
但是这一行 returns 1 即使模块甚至没有安装。我想这是因为 pwsh
returns true
独立于 powershell 命令的结果,表示命令已正确执行。有没有办法让 pwsh
通过结果呢?
在 Mac 运行 PowerShellCore 6.0.2:
$ pwsh -c 'if(-not (Get-Module -ListAvailable -Name VMware.PowerCLI)){ exit 1 }' && echo yes || echo no
yes
$ pwsh -c 'if(-not (Get-Module -ListAvailable -Name BadModuleName)){ exit 1 }' && echo yes || echo no
no
在我的 Ubuntu 16 服务器上的 PHP 脚本中,我希望能够检查 Powershell 是否安装了某个模块,我试图通过行
pwsh -c {Get-Module -ListAvailable -Name "VMware.PowerCLI"} && echo 1 || echo 0
但是这一行 returns 1 即使模块甚至没有安装。我想这是因为 pwsh
returns true
独立于 powershell 命令的结果,表示命令已正确执行。有没有办法让 pwsh
通过结果呢?
在 Mac 运行 PowerShellCore 6.0.2:
$ pwsh -c 'if(-not (Get-Module -ListAvailable -Name VMware.PowerCLI)){ exit 1 }' && echo yes || echo no
yes
$ pwsh -c 'if(-not (Get-Module -ListAvailable -Name BadModuleName)){ exit 1 }' && echo yes || echo no
no