Как переключаться между gcc6 и gcc8 на основе переменной в powershell - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь переключаться между gcc-6 и gcc-8 на основе переменной в сценарии powershell.Я установил оба файла, и мой файл ~ / .bashrc пуст.

У меня есть script.ps1

$gccVersion = 'gcc8'

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

Однако это не работает.Он просто придерживается версии gcc по умолчанию независимо от того, какую переменную я ему предоставляю.Чего мне не хватает?

Какой самый простой способ динамического переключения между gcc6 и gcc8 на основе переменной?

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Ваш if неправильно проверяет переменную.Напишите это как

if [ "$gccVersion" = gcc6 ]

или

if test $gccVersion" = gcc6

или

if [[ $gccVersion == gcc6 ]]
0 голосов
/ 23 мая 2019

Как указано в комментарии выше, вы вызываете данные строки.Я бы попытался вызвать их через & -оператор, например:

$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"
}

Вам также следует проверить LASTEXITCODE и статус выполнения последней операции .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...