linux bash shell 中真正伟大的一件事是您可以在子 shell 中定义变量,并且在该子 shell 完成后,其中定义的(环境?)变量就消失了,前提是您在不导出它们的情况下在子 shell 中定义它们。
例如:
$ (set bob=4)
$ echo $bob
$
没有变量存在,所以没有输出。
我最近也在编写一些 powershell 脚本,并注意到我一直不得不在脚本末尾清空我的变量/对象;在 powershell 中使用等效的子 shell 可以解决这个问题。
最佳答案
我以前从未听说过这样的功能,但您可以通过运行如下命令获得相同的效果:
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
即这使用调用运算符 (&
) 来运行脚本 block ({
...}
)。
关于bash - Powershell 是否具有与 bash 子 shell 等效的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50246788/