Quando usar arrays para definir comandos?

0

Eu li em algum lugar que os arrays são os melhores para fazer comandos.

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[@]}

Eu tive algum problema com uma variável que não é de matriz, então tenho usado matrizes como essa. Isso é necessário? Quando um array seria supérfluo e quando seria necessário?

    
por Lumify 23.10.2017 / 18:51

1 resposta

1

É necessário que seus argumentos tenham espaços neles. No entanto, você não está usando-as corretamente. Você precisa citar as expansões.

echo sent | sed -r "${long[@]}" "${lots[@]}" "${init[@]}"
    
por 23.10.2017 / 23:19