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 ...命令创建一个新的 shell;如果您对此进行过测试,那么您可能最终得到了几层嵌套的 shell。如果您这样做exit,您可能会看到gcc --version基本系统的输出。看看你与类似的东西嵌套得有多深pstree -s $$

要使用 scl 运行gcc --version,只需将命令放在该scl行:

 scl enable devtoolset-9 'gcc --version'

参考:红帽开发者工具集 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

相关内容