- Is
a
an array now? Or is it a string?
É uma string. Você disse a read
para ler para uma única variável, a cadeia inteira foi armazenada como a
. Se o comando fosse read a b c <<< …
, então a
obteria the
, b
obteria plain
e c
obteria gold ring
.
- Why did
read
add newline between two words?
Não, printf
porque você disse. Execute echo $a
.
- Why is
printf
printing as if it is inside a loop?
Porque $a
se expande para várias palavras. O formato que você forneceu espera uma string, ela recebe muitos. Com muitos argumentos printf
loops. Compare printf "=%s=\n" "$a"
onde "$a"
é um único argumento para printf
.