2

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

我使用wordexp(str, &res, WRDE_UNDEF), 但所有字符串都包含'|''&' wordexp()返回WRDE_BADCHAR. 我希望那wordexp()不报告这个。

例如,我希望wordexp("a & b", &res, WRDE_UNDEF)返回wordexp_t3 个字符串"a" "&" "b"

4

1 回答 1

3

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

逐字逐句man wordexp

字符串参数

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

于 2013-08-15T18:31:18.703 回答