Wordexp行为与&

时间:2013-08-15 18:25:25

标签: c posix expansion

是否有人知道wordexp()字符串的行为,其中包含'|''&'

我使用wordexp(str, &res, WRDE_UNDEF),但包含'|''&' wordexp()的所有字符串都会返回WRDE_BADCHAR。我希望wordexp()不报告此情况。

E.g。我希望wordexp("a & b", &res, WRDE_UNDEF)返回wordexp_t 3个字符串"a" "&" "b"

1 个答案:

答案 0 :(得分:3)

非法字符(newline|&;<>(,{{ 1}},){)需要转义。这是通过在}前添加前缀来完成的。

逐字man wordexp

  

字符串参数

     

由于扩展与shell(参见sh(1))对命令的参数的扩展相同,因此字符串s不得包含在shell命令参数中非法的字符。特别是必须          不得在命令替换或参数替换上下文之外使用任何未转义的换行符或|,&amp;,;,&lt;,&gt;,(,),{,}字符。