• Nenhum resultado encontrado

Prog Servidores Unidade III parte 2

N/A
N/A
Protected

Academic year: 2019

Share "Prog Servidores Unidade III parte 2"

Copied!
52
0
0

Texto

(1)

Unidade III

Programação Script

Parte 2

Slides 06

(2)

Unidade III

Programação Script

3.7

Substituição de comandos

3.8

Comandos de entrada e saída

Comandos de saída

echo

printf

Comando de entrada

read

3.9

Uso de aspas e apóstrofos

3.10 - Saída (término) de um script

3.11

Estado de saída

3.12

Operadores aritméticos

3.13

Expansão aritmética

3.14

Avaliação de expressões aritméticas

let

3.15

Cálculos envolvendo números reais

bc

Potenciação e radiciação

(3)

$(comando)

Os caracteres

$( )

intrui ao shell, substitui-los pelo

resultado do(s) comando(s) entre parêntesis.

Sintaxe:

$(comandos)

ou

`comandos`

Exemplo:

echo

$(

date

+“%

x %

r”

)

A sintaxe alternativa para

$(comando)

é

`comando`

(4)

Observações:

1.

O Bash shell suporta totalmente scripts escritos para

sh.

2.

A substituição de comandos também é conhecida

como “expansão”.

3.

É possível atribuir os resultados de comandos para

(5)
(6)
(7)

Também é possível aninhar/concatenar substituições de

variáveis e de comandos, colocando-os juntos entre

aspas.

Exemplo:

(8)

Existem dois comandos para saída de dados:

echo

printf

E um para leitura de dados:

(9)

pág.

echo

Usado para exibir mensagens e/ou conteúdo de

variáveis.

Sintaxe:

echo [ cadeia_caracteres $variavel $(comandos) ]

Exemplos:

echo Olá mundo

echo

“Olá mundo”

echo

‘Olá mundo’

echo Diretório do usuário: $HOME

echo

“Diretório

do usuário: $

HOME”

echo

Neste último caso, o caractere especial apóstrofo protege a interpretação

Diretório do usuário:

$

HOME

do caractere $ como sendo de expansão de variável ou de comando.

(10)

echo

Observações:

1.

A opção “

-n

” omite uma nova linha de

prompt. Porém

não é padrão POSIX.

2.

A opção “

-e

” habilita a interpretação

de sequências de

(11)
(12)
(13)

echo

Sequências de escape

Obs

.: Usar com a opção “

-

e” para habilitar a interpretação

da barra invertida.

Ex.: echo

-e

“Exemplo

mudando

\n

de linha

CARACTERES SIGNIFICADO

\n

Muda de linha.

\c

Omite uma nova linha de prompt.

\t

Tabulação horizontal.

\v

Tabulação vertical.

\\

Exibe o caracter \.

(14)

printf

Usado para exibir mensagens e/ou conteúdo de

variáveis. Teve sua origem na linguagem C.

Usa-se com caracteres especificadores de formato e

com caracteres de escape.

Sintaxe:

printf

[ “

literal_e_caracteres_espec_formato_e_escape

” argumentos

]

Exemplo:

printf

“Olá mundo”

printf

‘Olá mundo’

printf

“Diretório

do usuário: %s \

n”

$HOME

(15)

printf

Especificadores de formato

Observação.: Pesquisar sobre o uso de flags em printf.

(cap. 7, págs. 160-161)

FORMATO SIGNIFICADO

%c

Mostra um caracter.

%s

Mostra uma string (literal).

%d ou %i

Mostra um número inteiro.

%f

Mostra um número real.

%x.yf

Mostra um número real

com x casas inteiras e y

casas depois da vígula.

(16)
(17)
(18)
(19)
(20)

pág.

printf

Sequências de escape

Obs.: A opção \c é equivalente à sequência de escape

-

n”

no comando echo.

Ex.: printf

“Digite o nome do arquivo: ”

\c

; read ARQUIVO

CARACTERES SIGNIFICADO

\n

Muda de linha.

\c

Omite uma nova linha de prompt.

\t

Tabulação horizontal.

\v

Tabulação vertical.

\\

Exibe o caracter \.

\b

Backspace.

(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

read

O comando

read

é um comando de interação do script

com o usuário, ou seja, ele realiza a leitura de dados a

partir da entrada padrão (teclado).

Se não for especificada uma variável, o valor digitado

pelo usuário é armazenado na variável padrão

REPLY

.

Para se extrair o valor digitado pelo usuário, usar o

caractere de substituição ($).

Exemplo:

echo

–n “

Digite o nome do arquivo

: ”

;read

(32)
(33)
(34)
(35)
(36)

ATENÇÃO!

Ambas as formas agrupam o texto como uma única string.

PORÉM:

Aspas duplas (

...

)

O shell processa interpreta caracteres de escape, substituição

de variáveis, expansão de comandos, etc.

Exemplo:

x=“Tudo bem?”

echo

Ola

mundo! $x”

Apóstrofos (

'

...

'

)

Força ao shell tratar literalmente tudo que estiver entre o par

de apóstrofos, ou seja, não substitui variáveis, nem expande

comandos, etc.

Exemplo:

x='Tudo bem? '

(37)

exit

O comando

exit

força a saída (término) de um script.

(38)

$

?

A variável especial

?

guarda o valor de retorno do “

status

de saída

” da execução do último

comando

ou do último

script

executado.

Observações:

o

Todo comando ou script

realizado com sucesso

retorna o valor

zero (0).

o

Em um script shell podemos modificar o valor do estado de

saída através do comando de término

exit

. A expressão

exit

” retorna o valor do número como estado de saída do script.

Exemplo:

(39)

Obs.: Na página de manual do bash

(“

man

bash

”), na

seção “Shell

Variables

”, você visualizará outras variáveis

especiais.

VARIÁVEL

SIGNIFICADO

$

?

Valor de retorno do último comando

ou do último script executado.

$

$

Número do PID (Process ID)

(40)

São semelhantes aos da Linguagem C.

OPERADOR

OPERAÇÃO

EXEMPLO

OBSERVAÇÃO

+

Adição

X + Y

Soma o conteúdo de X e de Y

-

Subtração

X - Y

Subtrai Y do conteúdo de X

*

Multiplicação

X * Y

Multiplica o conteúdo de X pelo

de Y

/

Divisão

X / Y

Obtém o quociente da divisão

de X por Y

%

Resto de uma

divisão

X % Y

Obtém o resto da divisão de X

por Y

(41)

OPERADOR

OPERAÇÃO

EXEMPLO

OBSERVAÇÃO

++

Incremento

X++ ou

++X

Aumenta o conteúdo de X em

uma unidade

- -

Decremento

X-- ou

--X

Diminui o conteúdo de X em

uma unidade

+=, -=, *=, /=

Operadores de

atribuição aritméticos

X+= Y,

X-=Y,

X*=Y,

X/=Y

Soma o conteúdo anterior de X

com Y e armazena em X. O

mesmo que X = X + Y

(42)

$((

expressão_aritmética

))

Os carateres

$(( ))

funcionam como delimitadores de

expressões aritméticas, permitindo a expansão dos

cálculos realizados dentro do duplo parêntesis.

Exemplos:

echo

$((

2+3

))

n1=10

n2=5

echo

$((

(n1*n2) + (n1-n2)

))

echo

$((

(

$

n1*

$

n2) + (

$

n1-

$

n2)

))

(43)

let

Para

avaliar

e

realizar

uma expressão aritmética

pode-se utilizar também o comando

let

.

Exemplos:

x=1

let x=x*2+3

echo

“x

=$

x”

let x--

echo

“x

=$

x”

(44)

O uso de

$(( ))

ou do comandos

let

e

expr

só permitem

operações do tipo inteiro.

Para efetuar cálculos numéricos com floats (números de

ponto flutuante) existem 2 alternativas

:

Opção 1: Usar o programa

bc

(arbitary precision calculator language)

Sintaxe: echo

expressão

| bc -

l

ou

echo

scale

=

nºcasas_decimais

;

expressão

| bc

y=2.2

x=2.7

echo

$x/$y

| bc

l

(-l=com todas as casa decimais)

1.22727272727272727272 (ou com a função scale=nºcasas;)

echo

scale=4;$x/$y

| bc

(45)

Guardando o valor numa variável:

z=$(echo

scale=4; 5/2

| bc)

echo $z

2.50

Guardando o valor num arquivo, em seguida lendo para

uma variável:

echo

scale=2; 5/2

| bc > resultado.txt

read < resultado.txt

(46)

Potenciação (^)

echo

scale=4; 2^3

| bc

8

Raiz quadrada ( sqrt( ) )

(47)

Opção 2: Usar o programa

awk

x=2.2

y=3.3

(48)
(49)
(50)

Binário

Octal

Significado

Leitura

(r)

Escrita

(w)

Execução

(x)

0

0

0

0

Sem permissão alguma (acesso negado)

0

0

1

1

Permissão de execução

0

1

0

2

Permissão de gravação

0

1

1

3

Permissão de gravação e execução

1

0

0

4

Permissão de leitura

1

0

1

5

Permissão de leitura e execução

1

1

0

6

Permissão de leitura e gravação

(51)
(52)

Referências

Documentos relacionados

A execução, de qualquer lugar, tornou-se possível graças ao script de inicialização “ .bash_profile ” que previamente exporta a variável de ambiente “PATH” com

Este script equivale ao exemplo anterior, sem a execução de teste condicional, apenas de comando. Fornecendo o

O Estudo de Caso analisou os fatores extra e intraescolares associados à eficácia escolar do Instituto de Educação Eber Teixeira de Figueiredo, instituição de ensino da

No primeiro capítulo a pesquisa se concentrou no levantamento de dados da escola no Projeto Político Pedagógico (PPP) e análise dos indicadores do SPAECE. No

de professores, contudo, os resultados encontrados dão conta de que este aspecto constitui-se em preocupação para gestores de escola e da sede da SEduc/AM, em

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Para preservar a identidade dos servidores participantes da entrevista coletiva, esses foram identificados pela letra S (servidor) e um número sequencial. Os servidores que

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational