Questão nº 43
Questão de Tecnologia da Informação · FCC TRF4 2019 (nº 43)
Considere o shell script abaixo, criado no Linux.
#!/bin/bash
main()
{
I
}
II {
path="path"
for file in *
do
rm -rf "$file"
done
echo "Concluído!"
}
main
O comando I chama a função II. Preenchem correta e respectivamente as lacunas I e II as instruções
- Alimpar e limpar() (alternativa correta)
- Blimpar(); e public function limpar()
- Climpar() e function limpar()
- Dbash limpar(); e public limpar()
- Ebash limpar e function limpar()
Resposta comentada
Gabarito Alternativa A
Em Bash, para organizar seu código, você pode criar funções, que são blocos de comandos nomeados que podem ser chamados e executados a qualquer momento. Para definir uma função, você dá um nome a ela, seguido de parênteses () e depois os comandos entre chaves {}. Para chamar (executar) uma função, basta digitar o nome dela.
(A) Correta: limpar e limpar()
- Para
**I**(chamada):limparé a forma padrão e mais simples de chamar uma função no Bash, usando apenas seu nome. - Para
**II**(definição):limpar()é uma forma canônica e muito comum de definir uma função no Bash, onde o nome da função é seguido por parênteses e o corpo da função em chaves.
(B) Incorreta: limpar(); e public function limpar()
limpar();para**I**: O ponto e vírgula;não é necessário para chamar uma função em uma linha separada, e os parênteses()são usados principalmente na definição.public function limpar()para**II**:publicnão é uma palavra-chave válida para funções no Bash; essa sintaxe é típica de outras linguagens de programação como PHP ou JavaScript.
(C) Incorreta: limpar() e function limpar()
limpar()para**I**: Embora possa funcionar em alguns contextos, a forma mais idiomática e recomendada para chamar uma função no Bash é apenaslimpar(sem os parênteses).function limpar()para**II**: Esta é uma forma válida de definir uma função no Bash (usando a palavra-chavefunction), mas a alternativa A é mais direta para a estruturaNOME() { ... }e a chamada em**I**é mais idiomática. (Armadilha da banca:function limpar()é uma definição válida, tornando esta alternativa tentadora. No entanto, a chamadalimpar()é menos comum e menos idiomática quelimparno Bash, e a definiçãolimpar()se encaixa de forma mais direta na estrutura visual**II** { ... }.)
(D) Incorreta: bash limpar(); e public limpar()
bash limpar();para**I**:bashaqui tentaria executarlimparcomo um script externo, não chamar uma função dentro do script atual.public limpar()para**II**:publicnão é uma palavra-chave válida no Bash.
(E) Incorreta: bash limpar e function limpar()
bash limparpara**I**: Assim como na alternativa D,bashtentaria executarlimparcomo um script externo.function limpar()para**II**: Embora seja uma definição de função válida, a chamada em**I**está incorreta.
Fonte: FCC TRF4 2019 Analista Judiciário - Área Apoio Especializado - Especialidade Infraestrutura em Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.