Bash中Alternate Value可选参数语法对应的PowerShell等效实现
PowerShell 动态传递可选参数的等价实现
PowerShell 中完全可以实现和 Bash ${PARAMS:+...} 特性等价的效果,常用方案有两种:
全版本兼容方案(支持 PowerShell 5.1 及所有版本)
通过参数数组 + splatting 机制实现,逻辑清晰兼容性最好:
# 先定义必填参数数组 $curlParams = @('-o', '-') # 仅当 $PARAMS 非空时追加可选参数 if ($null -ne $PARAMS -and $PARAMS -ne '') { $curlParams += '--data', $PARAMS } # 调用命令时用 @ 符号展开数组,每个元素会作为独立参数传递 & curl @curlParams
简洁简写方案(支持 PowerShell 7+)
使用三元运算符可以写出和 Bash 语法非常接近的一行写法:
curl -o - @($PARAMS ? ('--data', $PARAMS) : @())
额外说明:PowerShell 原生Cmdlet的可选开关控制
如果是调用PowerShell自带的Cmdlet,可选开关参数可以直接用布尔值控制,不需要拼接数组:
# 仅当 $enableRecurse 为 $true 时启用 -Recurse 开关 Get-ChildItem -Path . -Recurse:$enableRecurse
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

