就在我认为我知道 shell 是如何正常工作的时候,出现了一些让我难过的东西。以下命令在 GNU bash 版本 3.2.25 上执行。
我有几个./configure
脚本,它们都共享一组常见的配置选项,其中一个是CFLAGS
.
为此,我有两个变量
CFLAGS="-fPIC -O3"
COMMON_CONFIGURE_OPTIONS="CFLAGS=\"$CFLAGS\" --enable-static --disable-shared --prefix=$PREFIX"
当它被传递给`./configure'时,它是这样完成的,
"$FOO/configure" $COMMON_CONFIGURE_OPTIONS
对于我的生活,我似乎无法正确扩展它。我已经尝试手动替换$CFLAGS
into的值$COMMON_CONFIGURE_OPTIONS
。我在阳光下尝试了单引号和双引号的所有组合。我什至尝试引用整个“CFLAGS = ...”论点。
我上面给出的版本产生以下(set -x
启用时)
../configure 'CFLAGS="-fPIC' '-O3"' --enable-static --disable-shared --prefix=../install
configure: error: unrecognized option: `-O3"'
Try `../configure --help' for more information
我所期望的,我渴望的,是为了configure
被调用
./configure CFLAGS="-fPIC -O3" --enable-static --disable-shared --prefix="$PREFIX"
我怎样才能实现我想要的,此外,是否有很好的资源/提示可以在未来避免这个问题?