在Powershell中,Bash的${myvar:-default}的等价写法是什么?

19 浏览
0 Comments

在Powershell中,Bash的${myvar:-default}的等价写法是什么?

在Bash中,我可以这样做:

${VAR1:-default}

...这意味着如果VAR1不存在,返回"default"。

有很多这种类型的操作符:Bash parameter expansion examples

看起来有很多使用Get-Variable的例子,但没有特别简洁的。我是否漏掉了PowerShell中的等价操作符?

0
0 Comments

问题的出现是因为在PowerShell中想要使用类似于Bash中的${myvar:-default}的语法来设置默认值。在处理脚本或函数的参数时,可以通过在参数声明中为其提供默认值来实现。但是,在将现有变量替换为表达式时,无法直接使用类似的语法来设置默认值。

解决方法是,需要编写一个表达式来获取所需的默认值。在PowerShell中,可以使用条件运算符(?:)来实现这一点。以下是一个示例:

$myvar = $null
$defaultValue = "default"
$result = $myvar -ne $null ? $myvar : $defaultValue

在上述示例中,首先将$myvar设置为$null,然后设置$defaultValue为"default"。然后,使用条件运算符来检查$myvar是否为$null。如果是,则将$result赋值为$defaultValue,否则将$result赋值为$myvar的值。

这样就可以实现类似于Bash中的${myvar:-default}的功能。如果$myvar的值不为$null,则$result将为$myvar的值;如果$myvar的值为$null,则$result将为$defaultValue的值。

通过使用条件运算符,可以在PowerShell中实现类似于Bash中的${myvar:-default}的功能,从而达到设置默认值的目的。

0