Одна вещь, которая действительно хороша в linux bash shell, это то, что вы можете определять переменные внутри подоболочки, и после того, как этот подоболочка завершает (переменные?), Переменные, определенные внутри, просто исчезают, если вы определяете их без экспорта и внутри подоболочки.
например:
$ (set bob=4)
$ echo $bob
$
Переменная не существует, поэтому нет вывода.
Я также недавно писал некоторые сценарии PowerShell и заметил, что мне приходилось обнулять мои переменные / объекты в конце сценария; использование эквивалента subshell в powershell поможет разобраться в этом.