A analista Priscila escreveu o seguinte shell script no arqu...

Próximas questões
Com base no mesmo assunto
Q3037058 Programação
A analista Priscila escreveu o seguinte shell script no arquivo q03.sh:


#!/bin/bash


alias echo3='echo -n TRF'


function echo2 () {  $echo1 }


echo1='echo TRF'


$echo1 echo2 echo3


Priscila executou o script acima em um terminal com o interpretador Bash, através do comando “bash q03.sh”.
Após a execução do comando, Priscila observou que a string “TRF” foi impressa na saída do terminal:


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é: C - duas vezes.

Vamos analisar o funcionamento do script q03.sh para entender essa resposta.

Este script escrito em shell script para o interpretador Bash começa com a linha #!/bin/bash, que indica que o arquivo deve ser executado usando o Bash.

Primeiro, temos um alias declarado: alias echo3='echo -n TRF'. O alias cria um comando personalizado chamado echo3, que executa echo -n TRF, imprimindo "TRF" na tela sem uma nova linha.

Em seguida, temos uma função chamada echo2 com o seguinte conteúdo:

function echo2 () {
 $echo1
}

A função echo2 executa o conteúdo da variável echo1. É importante notar que a variável echo1 é definida após a função, como echo1='echo TRF'. A definição da variável echo1 indica que ela contém o comando echo TRF.

Agora, vamos passo a passo:

  • $echo1: Quando executado, imprime "TRF" porque a variável echo1 armazena o comando echo TRF.
  • echo2: Chama a função echo2, que executa $echo1, novamente imprimindo "TRF".
  • echo3: Executa o alias echo3, que imprime "TRF" sem uma nova linha.

Assim, após a execução do script, a string "TRF" é impressa duas vezes no terminal: uma vez pela execução direta de $echo1 e outra vez pela função echo2. A execução de echo3 não contribui ou altera isso, pois ocorre no ambiente do script e não afeta a saída devido ao contexto de execução.

Agora, vamos discutir as outras alternativas:

A - uma vez: Incorreta, pois o script imprime "TRF" duas vezes, não uma.

B - três vezes: Incorreta, pois o script não imprime "TRF" três vezes; o alias echo3 não é executado no mesmo contexto do script, apenas quando chamado fora de um script, após o script definir o alias.

D - nenhuma vez, gerando erro: Incorreta, pois não há erros de execução no script que impeçam a impressão de "TRF".

E - nenhuma vez, sem gerar erro: Igualmente incorreta, pois o script funciona corretamente e imprime "TRF" duas vezes.

Espero que essa explicação tenha sido útil para entender como o script funciona e por que a alternativa C é a correta. Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo