在for循环中(i)我必须测试:
if [[ "${PARAMETER[$i]}" =~ $(printf "|^%s\$" "${COMMANDS[@]" | cut -c 2-)]]; then....
我怀疑是在printf部分。 对不起,如果没有得到很好的解释。
答案 0 :(得分:1)
POSIX printf函数的工作方式与C对应的几乎相同。在这里,%s
将替换为"${COMMANDS[@]"
展开的内容。结果前置|^
,附加$
。
如果"${COMMANDS[@]"
扩展为多个标记,则结果是所有此类字符串的连接。
注意:您在]]
之前忘记了空白吗?