为什么“ CC = xxx echo $ CC”不能更改环境变量

幻影

当使用make时,我们可以在命令之前设置CCCC=clang make来设置环境变量。所以我也测试了echo,结果如下:

> export CC=123
> CC=xxx echo $CC
123

为什么结果不是xxx

内特·艾德雷奇

您可以在bash手册中阅读简单命令扩展的工作方式。

的膨胀$CC发生在步骤2中,作为其一部分参数扩展替换$CC123,因此要执行的命令变为

CC=xxx echo 123

xxxto的分配CC仅发生在步骤4中。因此,总体效果是将变量CC设置为等于xxx,将其添加到环境中,然后echo 123执行命令输出当然是123由于该命令echo 123未使用任何环境变量CC,因此的设置CC无效。

因此,为了使变量分配影响参数扩展,必须将其作为先前的命令完成:CC=xxx ; echo $CC如果您不希望当前Shell的环境受到影响,则可以在subshel​​l中运行这两个命令:( CC=xxx ; echo $CC ),之后echo $CC123再次打印

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么CMake会忽略导出的CXX和CC环境变量?

getenv(“ cc”)返回NULL,为什么?

为什么ED无法通过Cc退出?

$(CC)和$ CC有什么区别?

为什么`echo -ne“ commit $ {git cat-file commit cc540cb | wc -c)\ 0”`在命令替换前输出空格?

为什么 PHP 不能执行 echo "<?"?

在vim中,为什么c_的行为就像cc?

为什么“ cc”和“ c ++”的Bash完成不起作用?

为什么我不能从终端启动Eclipse?更改 $PATH 环境变量

当.c或.cc文件不能运行时,为什么.cpp文件可以在xterm上运行?

Docker echo环境变量

echo gammu环境变量

为什么我不能使用EventHandler处理EventHandler <XXX>?

Distutils在构建python扩展时部分忽略了CC环境变量

为什么我不能做类似“echo xx | 光盘'

为什么 echo 命令解释基目录的变量?

为什么使用变量使用zsh改变echo的输出?

为什么在运行“ make”命令后修改ns2中的* .cc文件没有任何更改

为什么/ Adobe Premier Pro CC如何使用我100%以上的CPU

为什么Premiere Pro CC 2015中的渲染会导致整个系统崩溃?

为什么Thor(aka Creative Cloud Desktop)中缺少Audition CC 2019(aka 12.x)?

为什么curl不能在循环内扩展变量,但是echo可以呢?

为什么“ lspci -xxx”很危险?

为什么环境变量不改变?

为什么不能将变量用作设置环境变量的命令的前缀?

编译Linux内核时,CC,LD和CC [M]之类的代码是什么?

gcc / g ++和cc1 / cc1plus有什么区别?

为什么printf比echo好?

为什么echo $$返回数字?