Powershell 是否具有与 bash 子外壳等效的功能?
Does Powershell have an equivalent to the bash subshell?
在 linux bash shell 中真正伟大的一件事是您可以在 subshell 内部定义变量,然后在 subshell如果您在不导出它们的情况下定义它们并且在 subshell.
中定义它们,则完成其中定义的(环境?)变量刚刚消失
例如:
$ (set bob=4)
$ echo $bob
$
不存在变量,所以没有输出。
我最近也在编写一些 powershell 脚本并注意到我一直不得不在脚本末尾清空我的变量/对象;使用等价于 powershell 的 subshell 可以解决这个问题。
我以前从未听说过这样的功能,但是您可以通过 运行 如下所示获得相同的效果:
Clear-Host
$x = 3
& {
$a = 5
"inner a = $a"
"inner x = $x"
$x++
"inner x increment = $x"
}
"outer a = $a"
"outer x = $x"
输出:
inner a = 5
inner x = 3
inner x increment = 4
outer a =
outer x = 3
即这使用调用运算符 (&
) 到 运行 脚本块 ({
...}
).
在 linux bash shell 中真正伟大的一件事是您可以在 subshell 内部定义变量,然后在 subshell如果您在不导出它们的情况下定义它们并且在 subshell.
中定义它们,则完成其中定义的(环境?)变量刚刚消失例如:
$ (set bob=4)
$ echo $bob
$
不存在变量,所以没有输出。
我最近也在编写一些 powershell 脚本并注意到我一直不得不在脚本末尾清空我的变量/对象;使用等价于 powershell 的 subshell 可以解决这个问题。
我以前从未听说过这样的功能,但是您可以通过 运行 如下所示获得相同的效果:
Clear-Host
$x = 3
& {
$a = 5
"inner a = $a"
"inner x = $x"
$x++
"inner x increment = $x"
}
"outer a = $a"
"outer x = $x"
输出:
inner a = 5
inner x = 3
inner x increment = 4
outer a =
outer x = 3
即这使用调用运算符 (&
) 到 运行 脚本块 ({
...}
).