Powershell是否具有与bash子shell相同的功能?

时间:2018-05-09 06:26:58

标签: bash powershell subshell

linux bash shell中真正优秀的一点是你可以在子shell中定义变量,然后在子shell完成之后,定义内部定义的(环境?)变量就会消失,只要你定义它们而不导出它们并在子shell中。

例如:

$ (set bob=4)
$ echo $bob
$

没有变量,所以没有输出。

我最近也写了一些powershell脚本,并注意到我不得不在脚本末尾清空我的变量/对象;在powershell中使用子shell等效物将清除它。

1 个答案:

答案 0 :(得分:4)

之前我没有听说过这样的功能,但你可以通过运行以下内容获得相同的效果:

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

即。这使用调用操作符(&)来运行脚本块({ ... })。