내 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