- Is
aan 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
readadd newline between two words?
Não, printf porque você disse. Execute echo $a .
- Why is
printfprinting 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 .