有谁知道wordexp()字符串的行为,其中包含'|'or '&'。
我使用wordexp(str, &res, WRDE_UNDEF), 但所有字符串都包含'|'或'&' wordexp()返回WRDE_BADCHAR. 我希望那wordexp()不报告这个。
例如,我希望wordexp("a & b", &res, WRDE_UNDEF)返回wordexp_t3 个字符串"a" "&" "b"。
非法字符(newline或|, &, ;, <, >, (, ), {, })需要转义。这是通过在它们前面加上前缀来完成的\。
逐字逐句man wordexp:
字符串参数
由于扩展与 shell 对命令参数的扩展(参见 sh(1))相同,因此字符串 s 不得包含在 shell 命令参数中非法的字符。特别是,在命令替换或参数替换上下文之外,不得有任何未转义的换行符或 |、&、;、<、>、(、)、{、} 字符。