Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#for-loop
#echo
#variable-expansion
#token
Medium

Qual é a saída do seguinte comando?

for token in a b c; do

echo -n ${token};

done

A

anbncn

B

abc

Correct
C

token$token

D

{a}{b}{c}

E

a b c

Official Explanation / Community Explanations

O comando itera sobre a lista a b c usando um loop for. Em cada iteração, a variável token assume o valor do item atual. O comando echo -n ${token} imprime o valor de token sem uma nova linha no final (devido a -n). Assim, a saída é a concatenação dos três tokens: abc.

Como funciona

  • A sintaxe do loop for token in a b c; do ... done atribui cada palavra após in à variável token sequencialmente.
  • ${token} expande para o valor da variável token.
  • echo -n imprime a string sem adicionar um caractere de nova linha.
  • Portanto, a primeira iteração imprime a, a segunda imprime b imediatamente depois, e a terceira imprime c, resultando em abc.

Por que as outras opções estão incorretas

  • anbncn: Isso exigiria a adição de n após cada token, o que não está presente no comando.
  • $token$token$token: Este seria o resultado se a variável token não fosse expandida (por exemplo, se aspas simples fossem usadas). No entanto, ${token} é expandido.
  • {a}{b}{c}: Isso exigiria expansão de chaves ou chaves explícitas no comando echo, que não estão presentes.
  • a b c: Este seria o resultado se echo -n fosse substituído por echo (que adiciona espaços entre os argumentos) ou se os tokens fossem impressos com espaços. O comando usa -n e imprime cada token separadamente, sem espaços.