Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#function
#echo
#positional parameters
#bash
Medium

Após emitir:

function myfunction { echo 2 ; }

no Bash, qual saída o comando:

myfunction A B C

produz?

A

A B

Correct
B

A B C

C

A C

D

B C

E

C B A

Official Explanation / Community Explanations

Resumo

Esta questão testa o entendimento de como funções Bash lidam com parâmetros posicionais. Quando uma função é definida com function myfunction { echo $1 $2 ; }, ela referencia apenas os dois primeiros argumentos ($1 e $2). Chamar myfunction A B C passa três argumentos, mas a função ignora $3. Portanto, a saída é A B.

Como funciona

No Bash, funções usam parâmetros posicionais $1, $2, ..., $N para acessar argumentos passados a elas. $0 é o nome da função (ou do script). As variáveis $@ e $* representam todos os argumentos. Quando uma função é invocada, os argumentos são atribuídos a esses parâmetros. O corpo da função executa com esses parâmetros definidos. Se a função não referencia um parâmetro além dos passados, esses argumentos extras são simplesmente ignorados.

Por que a resposta correta está certa

A opção A (A B) está correta porque a função exibe $1 (primeiro argumento, A) e $2 (segundo argumento, B). O terceiro argumento C não é usado.

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

  • B. A B C: Incorreta porque a função exibe apenas $1 e $2, não $3.
  • C. A C: Incorreta porque $2 é B, não C. A função não pula $2.
  • D. B C: Incorreta porque $1 é A, não B.
  • E. C B A: Incorreta porque a ordem está invertida e inclui C, que não é referenciado.