问题描述
我想做这样的事情,其中我定义了一个变量,其扩展包含其他变量,并且这些变量可能需要用引号引起来。
CMAKE_BUILD_FLAGS=(-DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_CXX_FLAGS="-I/usr/local/include -L/usr/local/lib")
install_yaml_cpp() {
(
local version=0.6.2
cd $DEPS_TMP_DIR && \
rm -rf yaml-cpp-$version.tar.gz && \
wget -N https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-$version.tar.gz && \
tar -v -xzf yaml-cpp-$version.tar.gz && \
cd yaml-cpp-yaml-cpp-$version/ && \
mkdir -p build && \
cd build && \
cmake ${CMAKE_BUILD_FLAGS[@]} -DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_CONTRIB=OFF -DYAML_CPP_BUILD_TESTS=OFF .. && \
make -j$(num_cpus) install
)
}
我需要的是外壳将通过的内容解释为
cmake -DCMAKE_CXX_FLAGS="-I/usr/local/include -L/usr/local/lib" …
即就像我放入数组一样。但是,无论我如何引用和转义,它都行不通。我要么只获得空格之前的部分,要么将其传递为
cmake '-DCMAKE_CXX_FLAGS="-I/usr/local/include -L/usr/local/lib"' …
或其他一些
将带有空格和引号的嵌套变量传递到Shell脚本中的程序的正确方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)