Script de bash: elementos de matriz contendo caractere de espaço [duplicado]

0

Estou começando com o bash scripting. Estou trabalhando com elementos de matriz que contêm caracteres de espaço. No código abaixo, o terceiro elemento da matriz é "Mecanismo de acessórios". Tentei definir o caractere de espaço usando o símbolo \ , mas isso não ajuda.

Na rotina maior (não incluída aqui), eu uso os elementos da matriz para automatizar algumas coisas com ferramentas de linha de comando. Essas ferramentas de linha de comando aceitariam o "Mecanismo de Acessórios" como uma entrada.

#!/bin/bash
components="Persistence Instrument Accessory\Engine"
for i in $components; do
  echo ${i}
done

Agora, a saída desse código é:

  Persistence
  Instrument
  Accessory\Engine

Mas eu quero que seja:

  Persistence
  Instrument
  Accessory Engine

Como posso conseguir isso?

    
por seb 28.01.2015 / 08:49

1 resposta

4

Matrizes são definidas de forma diferente:

components=(Persistence Instrument "Accessory Engine")

ou

components=(Persistence Instrument Accessory\ Engine)

E acessado de forma diferente:

for i in "${components[@]}"
    
por 28.01.2015 / 08:53