是否可以将变量从BASH脚本传递到Linux上的PWSH

时间:2018-12-07 04:37:56

标签: bash powershell variables

我们有一个项目,希望在Linux上运行一些Bash&Powershell脚本。我们将使用BASH脚本来运行带有各种变量的某些进程,执行powershell脚本,然后完成一些其他的BASH命令。<​​/ p>

如果在bash脚本中设置了变量,然后在同一BASH会话中执行了powershell脚本,是否有办法将这些变量传递给Powershell?

2 个答案:

答案 0 :(得分:1)

您可以通过环境变量传递值,Bash(通常是POSIX兼容的外壳)使操作变得容易:

$ foo='BAR'; bar='BAZ' # define sample Bash shell vars.
$ foo="$foo" bar="$bar" pwsh -noprofile -command '$env:foo; $env:bar'
BAR
BAZ

请注意,前面的foo="$foo"bar="$bar"如何将 shell 变量$foo$bar定义为作用域环境变量进行pwsh通话。
也就是说,这些环境变量仅对pwsh子进程有效。

答案 1 :(得分:0)

如果导出bash变量,它将在powershell中以$ env:variablename:

的形式提供
example=/var/data
export example
pwsh -noprofile -command '$env:example;'

返回 / var / data

在Powershell中,您可以运行 Get-ChildItem Env:列出所有环境变量。