Shell scripts nos permitem programar comandos e executá-los ...

Próximas questões
Com base no mesmo assunto
Q2319261 Programação
Shell scripts nos permitem programar comandos e executá-los como um evento de script, assim como arquivos de lote. Considere o script a seguir, onde os números representam o número da linha. 
 1 #/bin/csh  2 @ argcount = $#argv  3 @ count=1  4 while ( $count <= $argcount )  5 echo $argv[$count]  6 set equalfound = `echo $argv[$count] | awk '/\=/ {print "yes"}'`  7 if ($equalfound == "yes") then  8 set $argv[$count]  9 echo " doing set.." 10 endif 11 if ($argv[$count] == "compile") set compile=yes 12 if ($argv[$count] == "reg" )set global=no 13 if ($argv[$count] == "clean")set clean=yes 14 if ($argv[$count] == "avn") set source=avn 15 @ count++ 16 end 17 ...

Assinale a alternativa INCORRETA
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C

A questão aborda conceitos fundamentais de shell scripting com o shell C (csh). Para resolver esta questão, você precisa compreender os seguintes conceitos:

  • Variáveis e argumentos: entender como as variáveis são definidas e utilizadas, além de como os argumentos são passados para um script.
  • Loops: saber como um loop while funciona em shell script e como ele é utilizado para iterar sobre argumentos passados ao script.
  • Operações com strings: compreender como realizar operações e comparações com strings dentro de um script.
  • Comando awk: ter um conhecimento básico do comando awk, que é um poderoso manipulador de texto.

O script apresentado na questão realiza um loop while que percorre todos os argumentos passados para o script. Dentro desse loop, existe uma série de operações, como imprimir o argumento atual, verificar se o argumento contém um sinal de igual (=), e atribuir valores a variáveis com base no valor dos argumentos.

A alternativa C afirma que o comando na linha 6 encontra a palavra "yes" entre os argumentos. Isso está incorreto porque o comando na linha 6 na verdade utiliza o awk para verificar se o argumento atual contém um sinal de igual (=), e se encontrar, imprime "yes". Não se trata de buscar a palavra "yes" entre os argumentos, mas sim de imprimir "yes" se um padrão específico é encontrado no argumento. O uso do acento grave (`) permite a execução de um comando e a substituição do resultado no lugar onde está o comando. Aqui, a variável equalfound receberá "yes" se o argumento contém um sinal de igual, e não a palavra "yes".

As outras alternativas descrevem corretamente o que cada linha do script faz, alinhado com os conceitos de shell scripting mencionados anteriormente:

  • A: Contabiliza o número de argumentos.
  • B: O loop se repete enquanto houver argumentos para testar.
  • D: Atribui "yes" à variável "clean" se o argumento for "clean".
  • E: Incrementa a variável "count".

Portanto, é essencial compreender como os scripts shell operam com argumentos e condicionais, além de ter familiaridade com comandos como echo, awk, e estruturas de controle de fluxo como if e while para ser capaz de solucionar questões desse tipo em concursos públicos.

Clique para visualizar este gabarito

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