Shell scripts nos permitem programar comandos e executá-los ...
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:
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