是否有人知道wordexp()
字符串的行为,其中包含'|'
或'&'
。
我使用wordexp(str, &res, WRDE_UNDEF)
,但包含'|'
或'&'
wordexp()
的所有字符串都会返回WRDE_BADCHAR
。我希望wordexp()
不报告此情况。
E.g。我希望wordexp("a & b", &res, WRDE_UNDEF)
返回wordexp_t
3个字符串"a" "&" "b"
。
答案 0 :(得分:3)
非法字符(newline
或|
,&
,;
,<
,>
,(
,{{ 1}},)
,{
)需要转义。这是通过在}
前添加前缀来完成的。
逐字man wordexp
:
字符串参数
由于扩展与shell(参见sh(1))对命令的参数的扩展相同,因此字符串s不得包含在shell命令参数中非法的字符。特别是必须 不得在命令替换或参数替换上下文之外使用任何未转义的换行符或|,&amp;,;,&lt;,&gt;,(,),{,}字符。