• Nenhum resultado encontrado

105.2 Editar e escrever scripts simples

No documento LP I-1 101 – 102 (páginas 122-127)

Para solicitar valores do usuário durante a execução do script, é usada a instrução read:

echo " I n fo rme v a l o r s o l i c i ta do : " read RESPOSTA

O valor retornado será armazenado na variável RESPOSTA. Caso uma variável de retorno não seja especificada, o nome padrão da variável de retorno, REPL Y,

será utilizado.

if then else

A estrutura lógica i f executa um comando ou uma lista de comandos se uma afirma­ ção for verdadeira. A instrução test avalia se a afirmação é verdadeira ou falsa. Seu uso é geralmente associado à instrução condicional if, como no exemplo abaixo, que exibe o k se o arquivo / b i n / ba s h for executável:

O exemplo abaixo mostra outra maneira de realizar a mesma tarefa:

A instrução e 1 s e é um apêndice à estrutura i f e determina o bloco de instruções a executar, caso a afirmação avaliada seja falsa. Exemplo:

O final da estrutura i f deve ser sempre sinalizado com f i .

Opções de avaliação da instrução test para arquivos e diretórios:

- d cami n h o : verdadeiro se o caminho existir e for um diretório; - c cami n h o : verdadeiro se o caminho existir;

i f test - x / b i n / b a s h ; then echo " o k " fi i f [ - x / b i n / b a s h J ; then echo "ok" f i i f [ - x / b i n / b a s h J ; then echo "ok" e l s e fi

- f cami n h o : verdadeiro se o caminho existir e for um arquivo comum;

- L cami n h o : verdadeiro se o caminho existir e for um link simbólico;

- r cami n h o : verdadeiro se o caminho existir e puder ser lido (acessado);

- s cami n h o : verdadeiro se o caminho existir e seu tamanho for maior que zero;

- w cami n h o : verdadeiro se o caminho existir e puder ser escrito;

- x cami n h o : verdadeiro se o caminho existir e for executável;

cami n h o l - ot cami nho2: verdadeiro se cami nhol for diferente de cami nho2.

Opções de aval iação de test para texto

- n texto: verdadeiro se o tamanho de texto for diferente de zero; - z texto: verdadeiro se o tamanho de texto for zero;

texto! - texto2: verdadeiro se texto! for igual a texto2;

texto! ! - texto2: verdadeiro se texto! for diferente de texto2.

Opções de ava liação de test pa ra n ú meros

n uml - 1 t n um2: verdadeiro se n uml for menor que n um2;

n uml n uml n uml n uml n uml - gt - l e - ge - eq - ne

n um2: verdadeiro se n uml for maior que n um2; n um2: verdadeiro se n uml for menor ou igual a n um2; n um2: verdadeiro se n uml for maior ou igual a n um2; n um2: verdadeiro se n uml for igual a n um2;

n um2: verdadeiro se n uml for diferente de n um2.

Uma variação da instrução i f é a instrução case. A instrução case prosseguirá se um item indicado for encontrado em uma lista de itens divididos pelo caractere " I ":

O final da estrutura case deve ser sempre sinalizado com e s a c .

Substituição de comandos

Um dos principais propósitos de um script é trabalhar com os dados produzidos por outros comandos, sejam dados binários ou dados de texto. Para exibir ou armazenar a saída de um comando, o mesmo é colocado entre aspas simples invertidas ' ou entre $ ( ) :

c a s e 3 i n ( l j 2 j 3 j 4 j 5 )

e s a c

echo " N úmero 3 e n c o n t r a d o n a l i s ta , " ; echo "portanto c a s e fi na l i zo u e " ; echo "executou e s s e s coma ndos " ;

Resultado idêntico será produzido na forma:

Operações matemáticas com números inteiros são feitas utilizando a instrução expr:

Produz resultado idêntico:

Instruções de laço

É bastante comum o desenvolvimento de scripts cuja finalidade é executar determi­ nada tarefa repetidamente, obedecendo a uma condição pré-determinada. Para esse fim existem as chamadas instruções de laço ou loop.

for

A instrução fo r executa uma ou mais ações para cada elemento de uma lista. Neste caso, cada número gerado pelo comando seq:

A saída desse script será:

TRESL I N HAS=$( ca t - n3 /etc/i n putrc)

echo "As três p r i me ir a s l i n h a s de /etc / inputrc: " echo $ T R E S L INHAS

T R E S L INHAS= 'c a t - n 3 /etc / in p ut r c '

e c h o " A s t rês p r i me ir a s l i n h a s de /etc / inputrc: " echo $TRESL INHAS

SOMA= 'expr $VALOR1 + $VALOR2'

SOMA=$( ( $VALOR1 + $VALOR2) )

for i in $ ( seq 5 ) ; do

echo "Ba i xando foto_$ i . j p g " ;

echo wget http : / /www . s omedoma i n . com/foto_$ i . j pg ; dane

B a ixando foto_l

wget http: / /www . s omedomai n . com/foto_l. j pg B a ixando foto_2

u ntil

A instrução unti l executa um ação em loop até que uma afirmação seja verdadeira como, por exemplo, adicionar uma linha ao arquivo texto_s i mp l es . txt até que este alcance 1 O linhas:

while

A instrução w h i l e é semelhante à instrução until, mas executa uma ação até que uma afirmação não seja mais verdadeira. Por exemplo, adicionar uma linha ao arquivo

texto_s i mp l es . txt até que este alcance 20 linhas (ou, em outras palavras, enquanto o documento for inferior a vinte linhas) :

local, propriedade e pennissão

Para que um script possa ser usado por todos os usuários, é importante que ele seja executável e que esteja num diretório incluído na variável PATH. Direito de escrita deve ser retirado para todos, exceto o dono (normalmente o root). Por ser um arqui­ vo mais vulnerável, não é recomendável ativar o bit SUID para arquivos script, pois mesmo se outro usuário o executasse, toda instrução contida nele seria executada com permissão de root.

'+

B a ixando foto_3

wget http: / /www . s omedoma in . com/foto_3. j pg B a ixando foto_4

wget http: / /www . s omedoma in . com/foto_4. j pg B a ixando foto_5

wget http: / /www. s omedoma in . com/foto_5. j pg

LENTE XTO=$ ( wc - 1 texto_s i mpl e s )

done

u n t i l [ $ { LENTEXTO%% *} - eq 1 0 ] ; do echo "Ma i s uma l i n h a " » texto_s i mp l es . txt LENTEXTO=$ ( wc - 1 texto_s i mp l es . txt )

LENTE XTO=$ ( wc - 1 texto_s i mpl e s )

done

w h i l e [ $ { LENTEXTO%% *} - l t 20 ] ; do echo " E dH he l i n h a " » texto_s i mpl es . txt LENTEXTO=$ ( wc -1 texto_s i mp l es . txt )

Peso 2

A linguagem SQL -Structured Quny Language, ou Linguagem de Consulta Estruturada - é o padrão para realização de consulta, edição e inclusão de dados nas tecnologias de bancos de dados mais utilizadas do mundo. Como um idioma comum entre as diferentes soluções de armazenamento de dados em larga escala, a linguagem SQL torna possível a um administrador realizar todas as operações fundamentais em um banco de dados mes­ mo que não tenha conhecimento pleno sobre a tecnologia específica empregada.

lnteragindo com os dados

A maneira mais básica de comunicação com um banco de dados é feita por meio de linha de comando. Semelhante ao prompt do bash, os bancos de dados mais popula­ res oferecem um prompt no qual é possível interagir com o banco de dados instalado.

Cada tecnologia de banco de dados possui sua própria ferramenta de interação manual. Para o banco de dados MySQL, existe o comando my sq l . Para o banco de dados Postgresql, o comando é o p s q l .

Bancos de dados são organizados em tabelas semelhantes às tabelas de uma pla­ nilha. Cada tabela possui colunas que recebem nomes e definição de tipo de dado. Os dados estão organizados como linhas na tabela, podendo ser incluídos, alterados ou removidos. Na maioria das tabelas, a primeira coluna corresponde a um campo de identificação único, criado automaticamente, usado para identificar uma linha específica da tabela.

Inserção de dados

O comando SQL para inserção de dados é o INSERT. Numa tabela chamada cliente

onde existem as colunas id (campo de identificação único), nome, email e telefone, a inserção de uma nova linha com todos os campos pode ser feita da maneira:

No documento LP I-1 101 – 102 (páginas 122-127)