Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Shell Scripting: Interpretação, Variáveis, Ambiente, Operadores e Redirecionamento., Notas de estudo de Gestão de Recursos Humanos

Informações básicas sobre shell scripting, incluindo programas interpretados, linguagem de programação completa, variáveis, ambiente adaptável ao usuário, simplicidade do shell, operadores e redirecionamento de e/s. O texto também aborda comandos como cat, grep, sed, awk e utilidades como pipeline, sistemas de arquivos e redirecionamento de saída. Além disso, é discutido o uso de variáveis, nomes, exportação e operadores de teste condicionais.

Tipologia: Notas de estudo

2015

Compartilhado em 24/05/2015

daysi-bishop-12
daysi-bishop-12 🇧🇷

5

(2)

38 documentos

1 / 61

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação C-Shell 1
PROGRAMÃO
SHELL
Autoras: Universidade Estadual de Campinas
Cristiana Munhoz Eugênio Centro de Computação
Lilliam Cássia Ciani Palermo Versão: 6 - Fevereiro 2000
Colaboradores - Agradecimentos Especiais:
Cristina Maria Zanini
Rubens Queiroz de Almeida
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d

Pré-visualização parcial do texto

Baixe Shell Scripting: Interpretação, Variáveis, Ambiente, Operadores e Redirecionamento. e outras Notas de estudo em PDF para Gestão de Recursos Humanos, somente na Docsity!

Centro de Computação - Unicamp

Gerência de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o C-Shell

PROGRAMAÇÃO

SHELL

Autoras:

Universidade Estadual de Campinas

Cristiana Munhoz Eugênio

Centro de Computação

Lilliam Cássia Ciani Palermo

Versão: 6 - Fevereiro 2000

Colaboradores - Agradecimentos Especiais:

Cristina Maria ZaniniRubens Queiroz de Almeida

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

O que

é

Shell?

programa que conecta e interpreta os comandos

linguagem de programação completa - interpretada

possui variáveis;

construções condicionais e interativas;

ambiente adaptável ao usuário;

é

uma

das

linguagens

originais

de

quarta

geração

(4GL).

Simplicidade do Shell

Pipeline

Sistemas de arquivos

Sistema operacional UNIX

Notas:

O programa

shell

interpreta os comandos que você digita

quando

trabalha com o sistema operacional e traduz para comandos que o kernel

compreende.

Shell:

é

uma

linguagem

de

programação

completa,

possuindo

variáveis,

construções

condicionais,

interativas

e

ambiente

adaptável ao usuário. O Shell do Unix é a ferramenta original deprotótipo rápido que ensina conceitos-chaves como modularidade,reutilização e desenvolvimento.

Os comandos do Shell se comunicam entre si por meio de umainterface simples e coerente chamada

conduto (pipeline)

.

O Shell permite que o usuário realize suas atividades sem afetarqualquer

outro

processo

que

não

lhe

pertence.

Quando

um

usuário conecta-se a um

sistema

Unix,

o

sistema

operacional

inicia automaticamente uma cópia do Shell, sob a qual o usuáriopoderá realizar qualquer função disponível.

O

shell

utiliza

o

sistema

de

arquivos

do

UNIX

que

permite

organizar

arquivos

em

pastas

(diretórios).

Esta

hierarquia

de

diretórios e arquivos gera uma visão simples e clara de toda ainformação no sistema.

O UNIX é transportável; ele roda em quase todo hardware decomputadores fabricados atualmente. Seu investimento não serádesperdiçado,

pois

qualquer

programa

escrito

é

largamente

portável entre Unix’es de diferentes plataformas e fornecedores.

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Produtividade

Linguagem interpretada - n

ã

o compilada

Um programador m

é

dio pode duplicar ou triplicar sua

produtividade com o uso do Shell

Compara

çã

o de Bruce Cox (pai do Objetive C)

shell

1 linha de c

ó

digo

linguagem orientada a objeto 10 linhas de c

ó

digo

linguagem C

100 linhas de c

ó

digo

Notas:

N

ã

o

é

de se espantar que o Shell possa duplicar ou triplicar a

produtividade pois ele pode automatizar a maior parte das tarefasrecursivas,

que

compreendem

de

50

a

80%

das

atividades

intensamente humanas. A simplicidade dos arquivos do UNIX e doprojeto de sistema de arquivo possibilitam isso. É

necess

á

rio alguns conhecimentos internos do Shell e do seu uso

para derivar desses benef

í

cios. Mas,

é

preciso apenas alguma

inventividade para tornar-se mais eficiente e produtivo.

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Filtros

teclado)

grep -i

Arthur

capit

Autor: Lowel ArthurRei Arthur e os Cavaleiros da T

á

vola

cat

cat

arquivo

sed

-e

s/shell/Shell/g

capit

O comando

sed

abrir

á

o arquivo

capit

como

stdin

e passar

á

o

arquivo

para

stdout

(terminal)

enquanto

muda

todas

as

ocorr

ê

ncias de

shell

para

Shell

.

Notas:

Uma chave para transformar dados brutos

em informa

çã

o

ú

til

é

filtrar os dados estranhos.

Voc

ê

pode pensar na maior parte dos comandos do Shell como

filtros.

Cada comando tamb

é

m possui duas sa

í

das:

sa

í

da-padr

ã

o -->

stdout

sa

í

da-de-erro -->

stderr

Cada comando filtra dados da entrada-padr

ã

o ou transforma-os

de algum modo, passando-os

à

sa

í

da-padr

ã

o. Quaisquer erros

encontrados s

ã

o passados

à

sa

í

da-de-erro.

Alguns filtros extraem apenas os dados que voc

ê

deseja ver,

outros incluem ou alteram os dados conforme suas instru

çõ

es.

FILTRO

STDIN

STDOUT

(tela)

S

TDERR

(

tela)

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Conduto

Conecta

stdout

de um comando

à

stdin

de outro

O resultado da execu

çã

o de um comando pode ser

utilizado como par

â

metro de entrada na execu

çã

o de

outro comando

Meio

de

condu

çã

o

para

transportar

dados

de

um

comando para o outro

Exemplos: grep

matricula /sistemas/acad/jobs/*

| wc -l | sort

ls -la |

grep -i

Jan

é

diferente de

ls -la

Notas:

Os

comandos

do

Shell

podem

ser

reutilizados,

acoplados

e

moldados

para

lidar

com

as

mais

dif

í

cieis

aplica

çõ

es

de

informa

çã

o.

Al

é

m de eliminar arquivos tempor

á

rios, o conduto permite que dois

comandos operem ao mesmo tempo.

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Constru

çã

o de um Shell Script

Edite um arquivo

Î

vi meu-programa

Esse arquivo deve conter na primeira linha:

#! /bin/ksh

ÎÎ

utilize para comentar uma linha

/bin/rm

arquivo

É

recomend

á

vel passar o

caminho

(path) dos comandos

\rm

arquivo

Garante encontrar a primeira ocorr

ê

ncia no

path

As shells devem estar sempre num diret

ó

rio comum, por

exemplo: /usr/sys/nome-sistema

Arquivos de controle que s

ã

o gerados pela shell devem

estar num diret

ó

rio tempor

á

rio, separado das shells.

Notas:

#!

/bin/ksh

Î

É

utilizado

para que o Unix saiba que sua shell

é

korn

shell.

É

recomend

á

vel passar

o

caminho

do

comandos,

pois

cada

usu

á

rio pode criar na sua

á

rea um alias para qualquer comando.

Os comandos ficam geralmente no diret

ó

rio /bin

Outra

op

çã

o

seria

colocar

scape

antes

do

comando,

por

exemplo

\rm.

Garante

que

voc

ê

estar

á

utilizando

a

1

a.

ocorr

ê

ncia encontrada no path definido no seu

.kshrc

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Caracteres especiais do SHELL

(v

í

rgula)

Separador de comando sequencial. Ex: date; ksh

meu_shell

; date >

/tmp/result

( ponto de interroga

çã

o )

Combina com qualquer caracter isolado.


(asterisco)

Combina com qualquer cadeia de caracter.

[a-z]* Combina com algo que consista de caracteres alfab

é

ticos

min

ú

sculos.

^

string

Procura a string somente no come

ç

o da linha

string

Procura a string somente no fim da linha

Notas:Exemplos:

Suponha que no diret

ó

rio corrente exista os seguintes arquivos:

capit1 , capit2, capit3, capit4 e capitulols capit*

(aparecer

á

os 5 arquivos)

ls capit?

(capit1, capit2, capit3, capit4)

ls capit[1-3]

(capit1, capit2, capit3)

os caracteres "?", "*" e "[a-z]" podem ser usados no meio deuma stringls cap?t

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Tipo de Vari

á

veis

Global: Seta vari

á

veis de ambiente ou vari

á

veis globais. Elas

existem enquanto a sess

ã

o estiver aberta.

Sintaxe:

export

nomevar=valor

Exemplos:

export TERM=

vt

(vari

á

vel de ambiente)

export DBDATE=

Y4MD-

(vari

á

vel de ambiente)

export

matricula

(vari

á

vel global)

Local: Seta vari

á

veis locais. Elas existem somente durante a

execu

çã

o da Shell.

Sintaxe: nomevar=valor

PARA SABER QUAIS VARI

Á

VEIS EST

Ã

O SETADAS E

QUAIS S

Ã

O SEUS

VALORES, UTILIZE O COMANDO

SET.

Notas:

EXPORT:

Seta vari

á

veis de ambiente ou globais. Existem enquanto a

sess

ã

o estiver aberta.

export PS1="hostname{whoami}$ " magda{maria}$

N

Ã

O

existe espa

ç

o em branco entre o nome da vari

á

vel e seu

conte

ú

do

nome=Rog

é

rio

Nomes de Vari

á

veis

n

ã

o

pode conter

hifen.

nota-aluno

Î

dar

á

erro

X

É

permitido o uso do

underline

para nome de vari

á

veis

:

minha_var

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Defini

çã

o de vari

á

veis

String

Utilizando string: Utilize "$" para substituir o nome da vari

á

vel pelo seu

conte

ú

do.

Sintaxe :

$vari

á

vel

Exemplos:cabec=

Relat

ó

rio do ano $ano

dir_log=/tmp

ls $dir_log

aluno=${nomes[$cont]}parm1=$1ls arq$vardia=Segunda-feira ; echo

Hoje

é

dia $dia

Notas:

N

ã

o

deixe espa

ç

o em branco entre o cifr

ã

o

($)

e o nome da

vari

á

vel.

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Defini

çã

o de vari

á

veis

Inteiro

Atribuindo valores do tipo

INTEIRO

Exemplos:

let

cont=

ou

cont=

let

soma=$cont+

let

x=' 1

ou

let

x=1+

let

x=$x+

N

Ã

O DEIXAR ESPA

Ç

O ENTRE O NOME DA

VARI

Á

VEL E O SINAL DE IGUAL

N

Ã

O

É

NECESS

Á

RIO INICIALIZAR UMA VARI

Á

VEL

COM O COMANDO LET PARA ELA SER DO TIPO

INTEIRA, UTILIZE O "LET" APENAS QUANDO VOC

Ê

QUISER MANIPUL

Á

-LA.

Notas:

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Edi

çã

o de string

typeset

Especifica o tipo do valor da vari

á

vel

Sintaxe:

typeset [op

çõ

es] v=$var

Op

çõ

es:

-Ln : ajusta

à

esquerda. Se "n"

é

especificado,

é

preenchido com branco ou truncado

à

direita no

valor de n

-Rn: ajusta

à

direita. Se "n"

é

especificado,

é

preenchido com branco ou truncado

à

esquerda

no valor de n

-Zn:

mesmo que o acima, adiciona 0 ao em vez

de branco

-l

converte para min

ú

sculo

-u

converte para mai

ú

sculo

Exemplos:alpha="

aBcDeFgHiJkLmNoPqRsTuVwXyZ

typeset -L v=$alpha"

Æ

"

aBcDeFgHiJkLmNoPqRsTuVwXyZ

"

typset -uR5 v=$alpha

Æ

"VWXYZ"

typeset -Z8 v="123.50"

Æ

Notas:

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Tratamento de Vari

á

veis

testa se a vari

á

vel tem conte

ú

do

-n str:

retorna verdadeiro se vari

á

vel N

Ã

O FOR NULA

-z str:

retorna verdadeiro se vari

á

vel for NULA

if [[ -z

$matricula

]] then

echo "

vari

á

vel matricula N

Ã

O inicializada

fi matricula=23456 if [[ -n

$matricula

]] then

echo "

vari

á

vel matricula inicializada

fi

Notas:

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Vari

á

veis de ambiente

$USER

Conte

ú

do do comando whoami (quem

é

o usu

á

rio da

conta)

$PATH Lista

de

diret

ó

rios

a

serem

procurados

pelo

meus

execut

á

veis

$HOME Mostra qual

é

o diret

ó

rio home

$PS1 Mostra o que est

á

setado como prompt

$SHELL Mostra a shell que est

á

sendo utilizada

$TERM

Mostra qual o tipo de terminal que est

á

sendo utilizado

N

ú

mero do processo do comando corrente

Notas:

O

valor

das

vari

á

veis

ao

lado

podem

ser

encontrados

ao

digitarmos o comando

set.

$$

ÎÎ

Muito utilizado pelos utilit

á

rios de mail que gravam o arquivo

em /tmp/arq_n

ú

mero_do_processo

Centro de Computa

çã

o - Unicamp

Ger

ê

ncia de Atendimento ao Cliente (e-mail:[email protected])

Programa

çã

o Shell

Execu

çã

o de um Shell Script

Fora do editor vi, na linha de comando:

$ksh

-op

çõ

es_de_teste

meu-shell par

â

metros

Gravar a execu

çã

o de uma shell script

$script$ksh

-op

çõ

es_de_teste

meu-shell

$ CTRL D$ more

typescript

Dentro do editor vi:

:w

ÎÎ

grava o arquivo que est

á

na mem

ó

ria

:!ksh

-op

çõ

es de teste

ÎÎ

diz

ao

vi

para

executar

o

comando

shell

seguinte %

ÎÎ

diz ao vi para preencher o nome do

arquivo

corrente

Op

çõ

es de Teste:

x

ÎÎ

gera sa

í

da dos comandos executados

Notas:

Voc

ê

pode executar o seu programa a medida que for sendo

desenvolvido, facilitando tamb

é

m a detec

çã

o e corre

çã

o de erros.

Entrando no

vi

e criando as primeiras linhas do programa, grave o

arquivo (:w) e execute-o sem sair do editor: (:!ksh -op

çã

o %)