【发布时间】:2014-05-09 22:53:51
【问题描述】:
我想将一些参数放入变量 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")
我想知道是否有更明显的解决方案。
【问题讨论】:
-
--sysroot错误之后的...部分是什么? -
我添加到变量中的其他部分
-
你几乎第一次就做对了。只需进行 2 处更改。
CFLAGS="-c --sysroot==$sysroot"和循环中的CFLAGS="$CFLAGS -I$dir"。在为变量赋值时,由于空格,您的原始帖子在两个地方都中断了。通过将空格括在引号内,问题得到解决。
标签: bash arguments command-line-arguments