我们有一个项目,希望在Linux上运行一些Bash&Powershell脚本。我们将使用BASH脚本来运行带有各种变量的某些进程,执行powershell脚本,然后完成一些其他的BASH命令。</ p>
如果在bash脚本中设置了变量,然后在同一BASH会话中执行了powershell脚本,是否有办法将这些变量传递给Powershell?
答案 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:列出所有环境变量。