我想把一些参数放入变量f.e。
CFLAGS=-c --sysroot=$sysroot
但bash抱怨它找不到文件--sysroot ......为什么?如何将这些参数放入变量并稍后将它们传递给程序。
此外,我想做一些事情:
for dir in ${include_dirs[*]};
do
CFLAGS=$CFLAGS "-I$dir"
done
但这也无法按预期工作。
编辑:一种解决方案
CFLAGS=("-c" "--sysroot=$sysroot")
并在循环中
CFLAGS=("${CFLAGS[0]}" "-I$dir")
我想知道是否有更明显的解决方案。
答案 0 :(得分:3)
shell引用非常重要,所以:
CFLAGS="-c --sysroot=$sysroot"
否则BASH将其解释为2个不同的论点。
或者,您可以使用数组来存储它:
CFLAGS=("-c" "--sysroot=$sysroot")
稍后使用它们:
"${CFLAGS[@]}"
引用数组扩展非常重要。