Bash - scl_devtool-9를 실행하고 gcc --version 출력을 얻는 방법

Bash - scl_devtool-9를 실행하고 gcc --version 출력을 얻는 방법

내 bash 스크립트:

#!/bin/bash

scl enable devtoolset-9 bash
gcc --version

결과: 이제 시스템에서 devtoolset-9가 활성화되었지만 출력이 나오지 않습니다 gcc --version. gcc 9.xx가 설치되었습니다. 를 입력하라는 프롬프트에서 scl enable devtoolset-9 bash시스템은 devtoolset-9를 실행했고 를 입력하여 gcc 버전을 확인할 수 있었습니다 gcc --version.

Bash 스크립트를 실행하고 얻는 방법은 무엇입니까 gcc --version output?

답변1

scl enable ...명령은 새 셸을 생성합니다. 이를 테스트한 경우 여러 수준의 중첩된 셸이 생성되었을 수 있습니다. 이렇게 하면 기본 시스템의 출력이 exit표시될 수 있습니다 . gcc --version비슷한 것들과 얼마나 깊이 중첩되어 있는지 확인하십시오 pstree -s $$.

scl을 사용하여 실행하려면 gcc --version다음 줄에 명령을 입력하세요 scl.

 scl enable devtoolset-9 'gcc --version'

인용하다:Red Hat 개발자 도구 세트 9 사용자 가이드(PDF).

답변2

스크립트를 원하는 방식으로 실행하려면 scl새 세션을 생성하는 대신 현재 bash 세션을 수정하는 명령이 필요합니다.

당신은 이것을 할 수 있습니다

#!/usr/bin/env bash

# switch to GCC9 environment for the duration of the script
source scl_source enable devtoolset-9

gcc --version

관련 정보