描述非常抽象,实际上我正在尝试将参数传递给%configure
RPM .spec 文件中的宏。但行为是一样的。
使用这样的脚本sh -x
:
#! /bin/sh
VAR1=" \
--enable-modules=dir so com \
--disable-userdir"
./configure $VAR1
给我:
+./configure --enable-modules=dir so com --disable-userdir
我需要的是:
+./configure --enable-modules='dir so com' --disable-userdir
问题:有什么方法可以正确传递引号和空格?将引号'dir so com'
放在$VAR1
所有字符串的废墟中。$"" 什么都不做, qoutes 引用最近的不带空格的字符组,等等。我几乎尝试了所有方法。
编辑:
请在推荐任何东西之前尝试一下。如果这很简单,那将不是问题。而且我不是说回声,我需要将参数传递给宏/外部脚本。sed/cat 化学是可以接受的,但我不能./configure
直接通过“反引号”或其他方式直接rpmbuild
调用,因为它本身带有一些额外的参数。在没有 qoutes 的情况下传递参数可以正常工作。
VAR1=" \
--enable-modules=dir so com \
--disable-userdir"
做:
$ sh -x test.sh
+ VAR1=' --enable-modules="dir so com" --disable-dir --disable-actions --disable-userdir'
+ ./configure '--enable-modules="dir' so 'com"' --disable-dir --disable-actions --disable-userdir`