为什么这个脚本有效?
str=( -name "*.conf" -o -name "test test" )
find ./ \( "${str[@]}" \)
这个脚本不起作用?
str[0]="-name"
str[1]="\"*.conf\""
str[2]="-o"
str[3]="-name"
str[4]="\"test test\""
find ./ \( "${str[@]}" \)
这里看起来像错误:str[1]="\"*.conf\""
我对第二种情况感兴趣。
这个:
(通常)与此相同:
这些引号中的大多数都被省略了,因为它们不是必需的 - 没有用于文件名扩展的通配符,或者来自默认 IFS 的空白字符可能会导致这些元素的字段拆分。
所以等价的可能是:
或者: