linux bash shell中真正优秀的一点是你可以在子shell中定义变量,然后在子shell完成之后,定义内部定义的(环境?)变量就会消失,只要你定义它们而不导出它们并在子shell中。
例如:
$ (set bob=4)
$ echo $bob
$
没有变量,所以没有输出。
我最近也写了一些powershell脚本,并注意到我不得不在脚本末尾清空我的变量/对象;在powershell中使用子shell等效物将清除它。
答案 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
即。这使用调用操作符(&
)来运行脚本块({
... }
)。