Como eu uno um array de strings onde cada string possui espaços?

0

Meu script bash:

#!bin/bash
MY_ARRAY=("Some string" "Another string")
function join { local IFS="$1"; shift; echo -e "$*"; }
join "," ${MY_ARRAY[@]}

Eu quero que a saída seja: Some string,Another string .

Em vez disso, obtenho Some,string,Another,string .

O que devo mudar para obter o resultado que quero?

    
por Username 31.08.2017 / 00:22

1 resposta

5

Minha versão modificada do seu script:

#!bin/bash
my_array=("Some string" "Another string")
my_join() {
  [ "$#" -ge 1 ] || return 1
  local IFS="$1"
  shift
  printf '%s\n' "$*"
}
my_join , "${my_array[@]}"

Notas:

por 31.08.2017 / 00:47