Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO EM SHELL SCRIPT – ATIV 4 ______________________________________________________________________________________ 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. 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. RES. ^[A-Z][a-z]* [A-Z][a-z]*$. ______________________________________________________________________________________ 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= ( ) 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. 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). RES. II; IV; I; III. ______________________________________________________________________________________ As Expressões Regulares correspondem a uma forma de representar cadeias de caracteres, ou seja, uma forma de representar um padrão a ser seguido ou a ser procurado em um texto. A criação das Expressões Regulares data de 1950, por Stephen Cole Kleene. Para representar um padrão, as Expressões Regulares fazem uso de caracteres e de metacaracteres. O conjunto de metacaracteres passíveis de uso nas Expressões Regulares são: “*”, “+”, “?”, “$”, “^”, “.”, “(“, “)”, “|”, “\”, “{“, “}”, “[” e “]”. Suponha as funcionalidades listadas a seguir: I. Denota a finalização de uma sequência. II. Engloba uma lista de possíveis caracteres. III. Sinaliza o início de uma linha. IV. Representa uma lista negada. Agora, associe as funcionalidades com os metacaracteres a seguir: ( ) [ ] ( ) [^ ] ( ) ^ ( ) $ Assinale a alternativa que contém a sequência correta. Parabéns! Sua resposta está correta. O início e final de uma cadeia de caracteres podem ser representados pelos metaaracteres “^” e “$”, respectivamente. Para o casamento de padrões, podem ser utilizados, dentre outros metacaracteres, os colchetes. Por exemplo, “[abc]” significa que um caractere as sequência pode ser “a”, “b” ou “c”. Por sua vewz, caso seja colocado “[^abc]”, o caractere da sequência poderá ser qualquer um exceto “a”, “b” ou “c”. RES.II; IV; III; I. ______________________________________________________________________________________ A instanciação de uma variável por intermédio do retorno de um comando é extremamente útil em diversas situações. Uma das situações pode ser representada quando utilizamos o comando “LS”, pois tal comando lista o conteúdo de uma pasta (diretório). A partir dessas informações, analise o seguinte script: #!/bin/bash var= echo ${var[*]} A partir do script acima, analise as afirmativas a seguir: I. A variável “ var” será associada a uma lista contendo os nomes dos arquivos retornados pelo comando LS. II. O comando ECHO imprimirá todos os nomes contidos na lista representada pela variável “ var”. III. O comando ECHO imprimirá a frase “ echo ${var[*]}”. IV. A linha “ var= ” poderia ser substituída por “ var=”ls”” . Assinale a alternativa que traz somente as afirmativas corretas. Parabéns! Sua resposta está correta. Realmente, uma variável criada no Shell Script pode representar também um vetor (lista). Para tanto, no caso do script dessa questão, essa lista é formada com a ativação do comando LS referenciado entre crases. O acesso a um elemento da lista é feito por meio de seu índice entre colchetes: o asterisco, como índice, indica todos. RES. I e II. ______________________________________________________________________________________ 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. 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. RES. IV; II; I; III. ______________________________________________________________________________________ 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. 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”. RES. $PWD; !=; fi. ______________________________________________________________________________________ Expressões Regulares são poderosas ferramentas para realizar operações de procura e substituição de textos em editores como o Vi, assim como podem ser utilizadas, por exemplo, em validações de campos em formulários Web. A análise por meio de Expressões Regulares tenta buscar um “padrão” que representa o texto. Analise as afirmativas a seguir, identificando com “V” a(s) verdadeira(s) e com “F”, a(s) falsa(s). ( ) Uma expressão regular pode ser formada por caracteres e por metacaracteres. Entendemos como “metacaractere” aquele que representa um significado especial no tratamento da expressão regular. ( ) Dentro do sistema operacional Linux, Expressões Regulares podem ser manipuladas por meio dos comandos EGREP e FGREP. ( ) O conjunto de metacaracteres passíveis de uso nas Expressões Regulares são: “*”, “+”, “?”, “$”, “^”, “.”, “(“, “)”, “|”, “\”, “{“, “}”, “[“ e “]”. ( ) O metacaractere “*” denota um espaço em branco. Assinale a alternativa que traz a sequência correta. Parabéns! Sua resposta está correta. Expressões Regulares fazem uso de caracteres e de metacaracteres. Metacaracteres permitem um tratamento especial. Por exemplo, o metacaractere “*” denota “qualquer caractere”. RES. V; V; V; F. ______________________________________________________________________________________ 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 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. RES. #! ; /home/usr/scripts ; coletadados.sh . ______________________________________________________________________________________ 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. 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. RES. V, F, V e V. ______________________________________________________________________________________ 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. 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. RES. III; IV; II; V; I. ______________________________________________________________________________________
Compartilhar