什么时候使用数组来定义命令?

什么时候使用数组来定义命令?

我在某处读到数组最适合发出命令。

sent='A long sentence with lots of words in it.'
long=('-e' '/ long/d')
lots=('-e' '/ lots of/d')
init=('-e' '/ in it/d')
echo sent | sed -r ${long[@]} ${lots[@]} ${init[@]}

我对非数组变量有一些问题,所以我一直在使用这样的数组。有这个必要吗?什么时候数组是多余的,什么时候又需要它?

答案1

如果你的论点中有空格,这是必要的。但是,您没有正确使用它们。您需要引用扩展。

echo sent | sed -r "${long[@]}" "${lots[@]}" "${init[@]}"

相关内容