Baixe o app para aproveitar ainda mais
Prévia do material em texto
Usuário MARCOS VINICIUS DA SILVA PIRES Curso GRA0946 PROGRAMAÇÃO EM SHELL SCRIPT GR2592-212-9 - 202120.ead-9082.05 Teste ATIVIDADE 4 (A4) Iniciado 24/08/21 10:53 Enviado 26/08/21 09:19 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 46 horas, 26 minutos Resultados exibidos Respostas enviadas, Respostas corretas, Comentários · Pergunta 1 1 em 1 pontos Para se editar um arquivo Shell Script, pode-se utilizar qualquer editor que gere um arquivo textual ASCII. Assim, podemos utilizar editores como o Vi, o XEmacs, o KWrite e KEdit. O editor Vi foi lançado em meados da década de 1970 e se tornou popular até os dias atuais por ser um editor que acompanha o padrão POSIX. Analise as afirmativas a seguir, identificando com “V” a(s) verdadeira(s) e com “F”, a(s) falsa(s). ( ) Para ativar um comando no modo Shell, deve-se pressionar o caractere “:” e, em seguida, o comando a ser executado. ( ) Movimentações do cursor podem ser realizadas por intermédio das teclas “h”, “j”, “k” e “l”, mesmo que se esteja no modo de edição. ( ) Para se alternar entre o modo de comando e o modo de edição deve-se pressionar a tecla “ESC” ou a tecla “a”. ( ) Para as operações de busca e de substituição de texto, o editor Vi aceita Expressões Regulares. Agora, assinale a alternativa que traz a sequência correta. Resposta Selecionada: V, F, V e V. Resposta Correta: V, F, V e V. Comentário da resposta: Parabéns! Sua resposta está correta. Para se entrar no modo de edição, deve-se pressionar o caractere “a”, e, para voltar ao modo de comando, a tecla ESC. As letras “h”, “j”, “k” e “l” somente atuarão na movimentação do cursor no modo de comando. Estando no modo de comando, as ações de Shell são ativadas pelo caractere “:”. Por fim, podemos falar que as Expressões Regulares correspondem a um recurso altamente poderoso no processo de busca de substituição de partes do texto editado. · Pergunta 2 1 em 1 pontos Expressões Regulares têm o objetivo de testar se uma cadeia de caracteres corresponde a um padrão predeterminado. Esse tipo de teste é extremamente útil no processo de busca e substituição de cadeias de caracteres nos editores de texto, bem como para a validação de informações em campos de formulários em sistemas Web. Suponha que há a necessidade de testar se a escrita de nome e sobrenome de uma pessoa está correta. Para tanto, imagine que a primeira letra do nome e as primeiras letras de cada sobrenome devem ser iniciadas com letras maiúsculas. Para facilitar a questão, leve em consideração que não existem caracteres acentuados, que o nome não contém partículas, como “da” (no caso de “João da Silva”), e que o nome é composto apenas pelo primeiro nome e um sobrenome. Assinale a alternativa que contém a expressão regular correspondente. Resposta Selecionada: ^[A-Z][a-z]* [A-Z][a-z]*$. Resposta Correta: ^[A-Z][a-z]* [A-Z][a-z]*$. Comentário da resposta: Parabéns! Sua resposta está correta. Você observou como o nome, para essa questão, pode ser formado e criou corretamente a expressão regular. Também observou corretamente como diferenciar a primeira letra maiúscula das demais letras minúsculas. · Pergunta 3 1 em 1 pontos Um dos editores “clássicos” no mundo do Unix/Linux é chamado “Vi”. Esse editor, lançado em 1976, foi incorporado ao Unix padrão POSIX, tornando-o popular. Sua operação pode ser alternada entre o modo de comando e o modo de edição por intermédio das teclas “ESC” e “a”, respectivamente. Dentro do modo de edição, pode-se evocar os comandos de Shell por uma sequência iniciada pela tecla “:”. Imagine as seguintes funcionalidades: I. Grava o texto sem sair do editor Vi. II. Efetua a saída do Vi alertando o usuário caso o texto tenha sido alterado desde a última gravação. III. Encerra o Vi sem salvar o texto sob edição, mesmo que tenha sido modificado desde a última gravação. IV. Efetua a gravação do arquivo mesmo se aberto somente para leitura. V. Efetua a gravação do texto e o encerramento do Vi. Agora, associe as funcionalidades aos comandos do modo Shell: ( ) q! ( ) w! ( ) q ( ) wq ( ) w Assinale a alternativa que contém a sequência correta. Resposta Selecionada: III; IV; II; V; I. Resposta Correta: III; IV; II; V; I. Comentário da resposta: Parabéns! Sua resposta está correta. Realmente, o Vi permite uma série de combinações de gravação e encerramento do editor. Permite, inclusive, por meio do comando “W!”, que o arquivo seja gravado mesmo tendo sido aberto somente para leitura. · Pergunta 4 1 em 1 pontos Implementar uma função em Shell Script é algo análogo a implementar uma função em uma linguagem de programação estruturada. Devemos, nesse caso, seguir a sintaxe correspondente e implementar o script de acordo com a nossa lógica de programação, utilizando, para isso, os comandos e estruturas disponibilizadas pela linguagem script. Para essa questão, suponha o seguinte script: #!/bin/bash data=$(date +"%d-%m-%y") echo "Data Atual = $data" mv $1 $data.$1 Analise as afirmativas a seguir: I. O script imprime, na tela, a data atual no formato dia-mês-ano. II. O script copia o arquivo passado como parâmetro para a data atual. III. O script renomeia o arquivo passado como parâmetro, inserindo a data antes de seu nome. IV. O script deve receber como primeiro parâmetro o nome do arquivo a ser renomeado. Selecione a alternativa que traz somente as corretas. Resposta Selecionada: I, III e IV. Resposta Correta: I, III e IV. Comentário da resposta: Parabéns! Sua resposta está correta. Realmente, o script apresentado coleta a data do sistema por intermédio do comando “DATE” para que possa, na última linha, renomear o arquivo cujo nome é passado como primeiro parâmetro ao script. · Pergunta 5 1 em 1 pontos Um sistema operacional como o Linux pode ser instalado em uma máquina pessoal ou em máquinas que servirão para outras demandas, como é o caso de servidores de redes. Um sistema operacional de rede é aquele dotado de mecanismos e serviços que vão ao encontro do gerenciamento e controle de acesso aos recursos presentes em uma rede de computadores. Para essa questão, suponha as seguintes funcionalidades: I. Serviço de Nomes: usado para realizar a tradução de um nome da Internet (por exemplo: empresax.com.br) para o seu respectivo endereço IP. II. Serviço cuja função é distribuir de forma dinâmica, dentre outros parâmetros, o endereço IP para as máquinas clientes. III. Comando responsável pela edição de rotas em um servidor de rotas. IV. Serviço responsável por realizar a tradução entre endereços falsos da Internet (por exemplo: 192.168.0.1) para endereço real. Associe as funcionalidades listadas com os serviços que poderão ser exportados e os comandos do sistema operacional Linux: ( ) NAT, ou Network Address Translation (Tradução de Endereçamento de Rede). ( ) DHCP ( Dynamic Host Configuration Protocol – Protocolo de Configuração Dinâmica de Host). ( ) DNS ( Domain Name Server – Servidor de Nomes de Domínio) ( ) route (rota) Agora, selecione a alternativa que contém as corretas associações. Resposta Selecionada: IV; II; I; III. Resposta Correta: IV; II; I; III. Comentário da resposta: Parabéns! Sua resposta está correta. Um computador pode desempenhar várias funcionalidades inerentes a uma rede de computadores, as quais também podem ser desempenhadas em computadores pessoais, localizados em, por exemplo, residências. · Pergunta 6 1 em 1 pontos Um arquivo de script pode conter várias funções. As funções poderão ser executadas sequencialmente ou, ainda, selecionadas de acordo com parâmetros e situações atuais do sistema. Imagine que o trecho a seguir representa um script que executa uma determinada função a partir do parâmetro passado pelo usuário. Assim, deve-se passar o valor “1” ou “2” como parâmetro para que seja executada a “ funcao1( )” ou a “ funcao2()”, respectivamente. Para essa questão, preencha as lacunas da codificação a seguir e depois selecione a alternativa que corresponde à sequência correta. #!/bin/bash funcao1() { echo "Selecionada a funcao 1" } funcao2() { echo "Selecionada a funcao 2" } case "___" in __ funcao1 ;; __ funcao2 ;; __ echo "opcao invalida" esac Resposta Selecionada: $1; 1); 2); *). Resposta Correta: $1; 1); 2); *). Comentário da resposta: Parabéns! Sua resposta está correta. Você observou que o valor “1” ou “2”, passado como parâmetro, corresponde à variável “ $1”, que será a base da seleção pelo comando “ case”. Você observou corretamente também a estrutura do comando “ case”, selecionando a chamada à “ funcao1( )” ou à “ funcao2( )”. · Pergunta 7 1 em 1 pontos Um Shell Script pode manipular não somente as variáveis criadas e instanciadas durante a execução dos scripts, mas também variáveis de ambiente. A manipulação das variáveis de ambiente é regida pelas mesmas regras, como a necessidade da utilização do símbolo “ $” precedendo o nome da variável. Imagine que você precisa criar um script para testar se o diretório corrente é o diretório home do usuário corrente. Preencha as lacunas de modo a atender ao especificado: #!/bin/bash if [ "___" ___ "$HOME" ] then echo "Nao estah no diretorio HOME" echo "O diretorio HOME eh $HOME" echo "O diretorio corrente eh $PWD" else echo "Estah no diretorio HOME ($HOME)" __ Agora, assinale a alternativa que contém a sequência correta do preenchimento das lacunas. Resposta Selecionada: $PWD; !=; fi. Resposta Correta: $PWD; !=; fi. Comentário da resposta: Parabéns! Sua resposta está correta. Você preencheu corretamente as lacunas, observando bem que a variável de ambiente que indica o diretório corrente é a “ $PWD” que, no caso do código apresentado nesta questão, foi comparado com a variável “ $HOME” (que indica o diretório home do usuário corrente). Essa comparação é semelhante à linguagem C de programação, ou seja, é denotada por “ !=”. Por fim, a finalização do bloco do comando condicional é realizada por meio do “ fi”. · Pergunta 8 1 em 1 pontos Para permitir uma melhor estruturação e aproveitamento de códigos, um script Shell pode evocar funções presentes no mesmo arquivo de codificação ou, ainda, evocar funções externas. Para o caso de chamar funções externas, deve-se executar o arquivo que contém a implementação da função a ser executada. A partir dessas informações, imagine que temos a necessidade de executar um arquivo Shell Script denominado “coletadados.sh” presente na pasta: /home/usr/scripts. Suponha que devemos passar o valor 5 para tal script. Assim, complete as lacunas da codificação a seguir e depois assinale a alternativa que contém as informações corretas. ___/bin/bash ___/____ 5 Resposta Selecionada: #! ; /home/usr/scripts ; coletadados.sh . Resposta Correta: #! ; /home/usr/scripts ; coletadados.sh . Comentário da resposta: Parabéns! Sua resposta está correta. Inicialmente, para se criar um Shell Script devemos informar qual Shell será utilizado para realizar a interpretação dos comandos, sendo que essa indicação é realizada mediante a combinação de caracteres “ #!” (no caso da questão, é utilizado o “bash”). Para a evocação de scripts externos, deve-se indicar o caminho no qual se localiza o arquivo a ser executado. Em tal caminho deve constar, também, o nome completo do arquivo. No caso dessa questão, o parâmetro é passado logo após o nome do arquivo que contém a codificação Shell Script. · Pergunta 9 1 em 1 pontos Implementar programas por meio de linguagens de programação ou codificar Shell Script requer, em grande parte das vezes, a utilização de variáveis. A manipulação das variáveis apresenta algumas diferenciações em relação às sintaxes utilizadas. A partir dessas informações, analise as linhas de codificação em Shell Script e as associe às definições a seguir: I . $var=$var1 II. var=$var1 III. var='$var1' IV. var=`ls` ( ) A variável será criada e instanciada com o valor armazenado pela variável “ $var1”. ( ) A variável recebe o resultado do comando “LS”, ou seja, armazenará uma lista com os nomes dos arquivos. ( ) Uma variável previamente criada é instanciada com o valor armazenado pela variável “ $var1” ( ) A variável será instanciada com a string: “$var1”. Agora, assinale a alternativa que contém a sequência correta. Resposta Selecionada: II; IV; I; III. Resposta Correta: II; IV; I; III. Comentário da resposta: Parabéns! Sua resposta está correta. Existem várias formas de se instanciar uma variável. Você observou e associou corretamente a instanciação de uma variável previamente criada (I), a criação e instanciação de uma variável (II), a instanciação sem a interpretação do valor associado (III) e a instanciação com o retorno de um comando (IV). · Pergunta 10 1 em 1 pontos Nas Expressões Regulares, uma cadeia de caracteres pode ser representada por meio de seu padrão. Por exemplo, o padrão de um número de telefone celular representado pela expressão regular, com DDD, é: ^\([1-9]{2}\) 9[0-9]{4}\-[0-9]{4}$ Na expressão regular, temos: · “^” e “$” → representam o início e o final da cadeia. · “\(“ e “\)” → denotam o abre e fecha parênteses. · “[1-9]{2}” → duas ocorrências de números que podem variar de 1 a 9 (representação do DDD) · “9” → dígito 9 (todo celular inicia com o dígito 9). · “[0-9]{4}” → quatro ocorrências de dígitos que podem variar de 0 a 9. · “\-” → o caractere “-” separando os campos do número do telefone. Para essa questão, analise as Expressões Regulares a seguir: I. ^(([0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2})|([0-9]{11}))$ II. ^([0-1][0-9]|[2][0-3]):[0-5][0-9]$ III. ^[a-z0-9.]+@[a-z0-9]+\.[a-z]+(\.[a-z]+)?$ IV. ^([0-9]{1,3}\.){3}[0-9]{1,3}$ Associe as Expressões Regulares com os seus respectivos significados: ( ) Representa um endereço da Internet – endereço IP. ( ) Representa as horas no formato “hh:mm”. ( ) Representa um CPF (podendo conter pontos e hífen ou apenas números) ( ) Representa um endereço de e-mail. Agora, assinale a alternativa que traz a ordem correta. Resposta Selecionada: IV; II; I; III. Resposta Correta: IV; II; I; III. Comentário da resposta: Parabéns! Sua resposta está correta. Você analisou corretamente as Expressões Regulares e associou corretamente aos padrões correspondentes. Podemos notar, portanto, a praticidade da utilização das Expressões Regulares no processo tanto de busca e substituição de cadeias de caracteres quanto de validação de formatos de dados. Quinta-feira, 26 de Agosto de 2021 09h22min14s BRT
Compartilhar