Então bourne shell (IIRC) não suporta matrizes. Você ainda pode usar "$ @"
set -- "one two" three
for i in "${@}" ; do
echo "$i"
done
Saídas:
one two
three
Testado no AIX 7.1 bsh.
Estou tentando fazer com que uma variável (bourne shell) se expanda como " $ @ ", de modo que produza várias palavras com algumas tendo espaços preservados. Eu tentei definir a variável de muitas maneiras diferentes, mas ainda não consigo trabalhar:
#!/bin/sh
n=\"one\ two\"\ three
for i in "$n"; do
echo $i
done
Eu quero definir a variável para que o script produza one two
primeiro e, em seguida, three
da próxima iteração, que é o que você obteria se substituísse a variável citada por " $ @ " e passou 'one two' three
como argumentos.
" $ @ " é mágica?