Linux 如何基于powershell中的变量在gcc6和gcc8之间切换

Linux 如何基于powershell中的变量在gcc6和gcc8之间切换,linux,bash,powershell,Linux,Bash,Powershell,我试图根据powershell脚本中的变量在gcc-6和gcc-8之间切换。我已经安装了两个,并且我的~/.bashrc文件为空 我在script.ps1中有一个 然而,这不起作用。不管我给它什么变量,它都坚持默认的gcc版本。我错过了什么 基于变量在gcc6和gcc8之间动态切换的最简单方法是什么?如上所述,您已经调用了给定的字符串。我会尝试通过&-运算符调用它们,如下所示: $gccVersion = 'gcc8' if ($gccVersion -eq 'gcc6'){ &

我试图根据powershell脚本中的变量在gcc-6和gcc-8之间切换。我已经安装了两个,并且我的~/.bashrc文件为空

我在script.ps1中有一个

然而,这不起作用。不管我给它什么变量,它都坚持默认的gcc版本。我错过了什么


基于变量在gcc6和gcc8之间动态切换的最简单方法是什么?

如上所述,您已经调用了给定的字符串。我会尝试通过&-运算符调用它们,如下所示:

$gccVersion = 'gcc8'

if ($gccVersion -eq 'gcc6'){
  & 'source /opt/rh/devtoolset-6/enable'
} else {
  & 'source /opt/rh/devtoolset-8/enable'
}

# Check the last exit code and execution status
if ((-not $?) -or ($LASTEXITCODE -ne 0)) {
    Write-Error "Command failed"
}
您还应该检查和

希望有帮助。

如果您的if没有正确测试变量。把它写成

if [ "$gccVersion" = gcc6 ]


谢谢你的帮助。当我尝试运行上述命令时,会出现错误:术语“source/opt/rh/devtoolset-6/enable”未被识别为cmdlet、函数、脚本文件或可操作程序的名称。可能是因为我在powershell中编写了这篇文章,而它正试图通过。-运算符在powershell中运行sourceIn您的源文件。但我不确定如果您试图源代码(例如bash脚本)会发生什么。
if [ "$gccVersion" = gcc6 ]
if test $gccVersion" = gcc6
if [[ $gccVersion == gcc6 ]]