Есть ли у Powershell эквивалент подоболочки bash? - PullRequest
0 голосов
/ 09 мая 2018

Одна вещь, которая действительно хороша в linux bash shell, это то, что вы можете определять переменные внутри подоболочки, и после того, как этот подоболочка завершает (переменные?), Переменные, определенные внутри, просто исчезают, если вы определяете их без экспорта и внутри подоболочки.

например:

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

Переменная не существует, поэтому нет вывода.

Я также недавно писал некоторые сценарии PowerShell и заметил, что мне приходилось обнулять мои переменные / объекты в конце сценария; использование эквивалента subshell в powershell поможет разобраться в этом.

1 Ответ

0 голосов
/ 09 мая 2018

Раньше я не слышал о такой функциональности, но вы можете получить тот же эффект, запустив что-то вроде следующего:

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

т.е. здесь используется оператор вызова (&) для запуска блока скрипта ({ ... }).

...