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