给RPM宏一个带空格的参数

djhaskin987

RPM宏示例:

%define hello() \
    printf 'hello, %{1}.\\n';

我希望能够为它提供带有空格的宏,如下所示:

%{hello "Dak Tyson"}

->

printf 'hello, Dak Tyson.\n'

但是,它会继续这样做:

%{hello "Dak Tyson"}

->

printf 'hello, "Dak.\n'

换句话说,它不会解释双引号,而是按原样使用它们。

单引号也不起作用:

%{hello 'Dak Tyson'}

->

printf 'hello, 'Dak\.\n'

也不反斜杠:

%{hello Dak\ Tyson}

->

printf 'hello, Dak\.\n'

也没有大括号:

%{hello {Dak Tyson}}

->

printf 'hello, {Dak.\n'

有什么办法可以给RPM宏参数加上空格吗?

djhaskin987

我浏览了宏扩展有关的RPM API C代码我在其中找到一个循环,该循环使用空格解析参数,并且(我认为)没有办法解决该循环。我认为您不能在参数中加空格。

我确实发现宏参数是安全的。

我的.rpmmacros档案:

%hello() '%{1}'
%name Dak Tyson

在定义了以上宏之后,此命令:

rpm --eval '%{hello %{name}}'

产量:

'Dak Tyson'

这样,如果我确实在宏定义中需要空格,则可以先将它们定义为宏。

我还偶然发现嵌套的参数化宏不起作用。

该命令:

rpm --eval '%{hello %{hello name}}'

产量:

error: Unterminated {: {hello
  2<     (empty)
  1<   (empty)
  0< '
'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取第一个以空格分隔的宏参数

来自分类Dev

从命令行执行 bash 脚本,该脚本需要一个带空格的参数

来自分类Dev

为什么带有一个参数的宏除了带双括号外不能按预期工作?

来自分类Dev

discord.py-如何制作一个命令,该命令使用多个带空格的单词作为一个参数

来自分类Dev

创建一个可以根据参数省略行的宏

来自分类Dev

Elixir宏中的任意参数-包裹一个主体

来自分类Dev

C可变参数宏调用另一个可变参数宏

来自分类Dev

C可变参数宏调用另一个可变参数宏

来自分类Dev

如何在调用另一个宏时使用宏参数?

来自分类Dev

宏中的逗号以将参数传递给另一个宏函数(#define a,b)

来自分类Dev

在另一个宏的字符串参数中使用Freemarker宏调用

来自分类Dev

NASM - 宏本地标签作为另一个宏的参数

来自分类Dev

如何使用 getopts 不接受任何东西,一个标志,一个带参数的标志和一个带两个参数的标志

来自分类Dev

在C中可能有一个带条件中断语句的宏

来自分类Dev

如何编写一个 DSL 来创建一个带参数的函数?

来自分类Dev

CLI上的NMake宏定义,其中包含一个空格

来自分类Dev

字符串化宏总是添加一个空格字符

来自分类Dev

在将宏作为参数传递给另一个宏之前按值翻译宏

来自分类Dev

如何为带空格的字符串创建一个正则表达式

来自分类Dev

Git在名称中添加一个带空格的文件夹

来自分类Dev

在带字符串的for循环中的每个其他字母之前添加一个空格

来自分类Dev

在带字符串的for循环中的每个其他字母之前添加一个空格

来自分类Dev

C# Mysql 创建一个带空格的表名

来自分类Dev

如何检索C99可变参数宏的最后一个参数?

来自分类Dev

如何检索C99可变参数宏的最后一个参数?

来自分类Dev

展开一个变量,其值包含一个选项和一个带空格的路径名

来自分类Dev

Sweet.js宏参数扩展为主体中的另一个宏,不需要

来自分类Dev

如何在将C ++宏作为参数传递给另一个宏之前对其进行扩展

来自分类Dev

在将宏传递给另一个宏而不是直接传递事物时,会出现多余的“空”参数

Related 相关文章

  1. 1

    获取第一个以空格分隔的宏参数

  2. 2

    从命令行执行 bash 脚本,该脚本需要一个带空格的参数

  3. 3

    为什么带有一个参数的宏除了带双括号外不能按预期工作?

  4. 4

    discord.py-如何制作一个命令,该命令使用多个带空格的单词作为一个参数

  5. 5

    创建一个可以根据参数省略行的宏

  6. 6

    Elixir宏中的任意参数-包裹一个主体

  7. 7

    C可变参数宏调用另一个可变参数宏

  8. 8

    C可变参数宏调用另一个可变参数宏

  9. 9

    如何在调用另一个宏时使用宏参数?

  10. 10

    宏中的逗号以将参数传递给另一个宏函数(#define a,b)

  11. 11

    在另一个宏的字符串参数中使用Freemarker宏调用

  12. 12

    NASM - 宏本地标签作为另一个宏的参数

  13. 13

    如何使用 getopts 不接受任何东西,一个标志,一个带参数的标志和一个带两个参数的标志

  14. 14

    在C中可能有一个带条件中断语句的宏

  15. 15

    如何编写一个 DSL 来创建一个带参数的函数?

  16. 16

    CLI上的NMake宏定义,其中包含一个空格

  17. 17

    字符串化宏总是添加一个空格字符

  18. 18

    在将宏作为参数传递给另一个宏之前按值翻译宏

  19. 19

    如何为带空格的字符串创建一个正则表达式

  20. 20

    Git在名称中添加一个带空格的文件夹

  21. 21

    在带字符串的for循环中的每个其他字母之前添加一个空格

  22. 22

    在带字符串的for循环中的每个其他字母之前添加一个空格

  23. 23

    C# Mysql 创建一个带空格的表名

  24. 24

    如何检索C99可变参数宏的最后一个参数?

  25. 25

    如何检索C99可变参数宏的最后一个参数?

  26. 26

    展开一个变量,其值包含一个选项和一个带空格的路径名

  27. 27

    Sweet.js宏参数扩展为主体中的另一个宏,不需要

  28. 28

    如何在将C ++宏作为参数传递给另一个宏之前对其进行扩展

  29. 29

    在将宏传递给另一个宏而不是直接传递事物时,会出现多余的“空”参数

热门标签

归档