Escolar Documentos
Profissional Documentos
Cultura Documentos
Prog Shell PDF
Prog Shell PDF
PROGRAMAÇÃO
SHELL
Programação C-Shell
1
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• é uma das linguagens originais de quarta geração • Os comandos do Shell se comunicam entre si por meio de uma
(4GL). interface simples e coerente chamada conduto (pipeline).
Programação Shell
2
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• um procedimento complexo usando muitas linhas de • O Shell pode extrair e manipular grandes quantidades de
comando; informações. Por que pesquisar um relatório inteiro quando o Shell
pode verificar e recuperar informações importantes para você sem
qualquer esforço ?
• um procedimento do qual todos os usuários poderão
beneficiar-se; • A composição de sistemas a partir de programas do Shell realizará
quase todas as tarefas necessárias. Em vez de esperar meses ou
• um comando simples usado inúmeras vezes; anos para a “solução perfeita”, aplicações protótipo do Shell
podem ser desenvolvidas, melhoradas e implementadas. Quando
• uma tarefa numa data planejada; necessário, elas poderão ser utilizadas como especificações de
requisitos para o desenvolvimento de um sistema “real”.
Programação Shell
3
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Produtividade Notas:
Programação Shell
4
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Filtros
Notas:
STDIN FILTRO STDOUT (tela) • Você pode pensar na maior parte dos comandos do Shell como
filtros.
(teclado)
STDERR (tela) • Cada comando também possui duas saídas:
• saída-padrão --> stdout
• saída-de-erro --> stderr
• cat
• cat arquivo
Programação Shell
5
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Redirecionamento Notas:
• Você pode usar o redirecionamento de E/S para mudar a direção
• Criar ou anexar arquivos; de stdin/stdout e stderr.
Exemplo:
sed -e “s/shell/Shell/g” < capit1 > novocapit1
• Usar arquivos existentes como entrada para o Shell; • O stderr ainda estaria direcionado para o terminal
• Reunir dois fluxos de saída; • Redirecionar stderr para um arquivo pode ser ocasionalmente útil
para depurar um comando Shell. Para combinar stderr com stdout,
• Usar parte do comando shell como entrada. use :
Exemplo:
sed -e “s/shell/Shell/g” capit1 1> novocapit1 2> erro
Exemplo:
ftp -niv ftp.unicamp.br << EOF!
user anonymous password maria@unicamp.br
cd /tmp
get apostila.ps
EOF!
Programação Shell
6
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Conduto Notas:
• Exemplos:
Programação Shell
7
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• # Î utilize para comentar uma linha • Os comandos ficam geralmente no diretório /bin
É recomendável passar o “caminho” (path) dos comandos ocorrência encontrada no path definido no seu .kshrc
• \rm arquivo
Garante encontrar a primeira ocorrência no path.
Programação Shell
8
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Ex: dia_da_semana=Segunda-feira
echo “ Hoje é $dia_da_semana ”
resultado : Hoje é Segunda-feira
• ‘ ‘ (aspas simples)
Mostra a cadeia de caracteres citada entre ', sem
substituir o nome da variável pelo seu conteúdo.
Ex: dia_da_semana=Segunda-feira
echo ' Hoje é $dia_da_semana '
resultado : Hoje é $dia_da_semana
• ` ` (crase)
O resultado do comando é usado em output.
• \ (barra invertida)
Transcreve um caracter especial
Programação Shell
9
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• ; (vírgula) Exemplos:
Separador de comando sequencial. Suponha que no diretório corrente exista os seguintes arquivos:
• * (asterisco)
Combina com qualquer cadeia de caracter. • os caracteres "?", "*" e "[a-z]" podem ser usados no meio de
uma string
• [a-z]* ls cap?t
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
Programação Shell
10
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• Global: • EXPORT:
Seta variáveis de ambiente ou variáveis globais. Elas • Seta variáveis de ambiente ou globais. Existem enquanto a
existem enquanto a sessão estiver aberta. sessão estiver aberta.
• export PS1="`hostname`{`whoami`}$ "
magda{maria}$
Sintaxe: export nomevar=valor
• NÃO existe espaço em branco entre o nome da variável e seu
Exemplos: conteúdo
export TERM=vt100 (variável de ambiente) • nome=Rogério
export DBDATE=Y4MD- (variável de ambiente)
• Nomes de Variáveis não pode conter hifen.
export matricula=20444 (variável global) • nota-aluno Î
dará erro X
Sintaxe: nomevar=valor
Programação Shell
11
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• String
• Atribuindo valores:
Sintaxe : nome=conteúdo
Exemplos:
msg_ftp=“221 Quit command received.”
dir_log=~liliam/tmp
meus_arqs=`ls -la`
• Concatenando strings:
Exemplos:
nome=Li
nome1=lliam
conc=$nome$nome1
echo $conc Æ Lilliam
Programação Shell
12
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Sintaxe : $variável
Exemplos:
cabec=“ Relatório do ano $ano”
dir_log=/tmp ; ls $dir_log
aluno=${nomes[$cont]}
parm1=$1
ls arq$var
dia=Segunda-feira ; echo “ Hoje é dia $dia “
Programação Shell
13
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• Inteiro
Programação Shell
14
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• Manipulando arrays:
• ${var[*]}
Mostra o conteúdo do array inteiro
• ${#var[*]}
Mostra o número de elementos (argumentos) de
um array.
• ${variável[n]}
Elementos posicionais de um array.
Programação Shell
15
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Notas:
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:
Programação Shell
16
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
if [[ -z $matricula ]] then
echo " variável matricula NÃO inicializada"
fi
matricula=23456
if [[ -n $matricula ]] then
echo " variável matricula inicializada"
fi
Programação Shell
17
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Exemplos:
var=5
echo $? (=0)
echo $var4
echo $? (= 1)
Programação Shell
18
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• $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
Programação Shell
19
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• Fora do editor vi, na linha de comando: • Você pode executar o seu programa a medida que for sendo
desenvolvido, facilitando também a detecção e correção de erros.
$ksh -opções_de_teste meu-shell parâmetros
• Entrando no vi e criando as primeiras linhas do programa, grave o
• Gravar a execução de uma shell script arquivo (:w) e execute-o sem sair do editor: (:!ksh -opção %)
$script
$ CTRL D
$ more typescript
Opções de Teste:
• x Î
gera saída dos comandos executados
Programação Shell
20
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• $*
Lista o conteúdo de todos os parâmetros
Programação Shell
21
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
igual == =
diferente != !=
and , or &&, ||
soma +
subtração --
multiplicação *
divisão /
Programação Shell
22
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
-r arquivo existir arq. legível • Test, como qualquer outro comando do Shell, sempre retorna um
-w arquivo existir arq. gravável valor verdadeiro (0) ou falso (1) na variável status do shell.
-x arquivo existir arq. executável
test -r nomearq
echo $?
-a arquivo se arquivo existe
Programação Shell
23
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
a=5 ; b=7
if (( $a == $b )) then
• if (( expressão aritmética )) then echo “valores iguais “
processa 1 else
else echo “ valores diferentes”
fi
processa 2
fi Comparação de testes condicionais
if [[ -z $parametros ]] then
• if [[ testes condicionais ]] then echo “ ERRO - não foi passado parâmetros !!! “
processa 1 exit
fi
else
processa 2 Comparação de string
fi
a=inteiro ; b=metade
PARA COMPARAÇÕES DE TESTES CONDICIONAIS E if [[ $a = $b ]] then
COMPARAÇÕES DE STRINGS É NECESSÁRIOS TER echo “variáveis iguais “
else
ESPAÇOS EM BRANCO ENTRE OS COLCHETES E echo “ variáveis diferentes”
OS OPERADORES fi
Exemplo:
if [[ $a = $b ]] then
echo “variáveis iguais “
fi
Programação Shell
24
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Exemplo:
while (( $# ))
do
case $1 in
Programação Shell
25
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Exemplos:
Utilizando o resultado de um comando:
for file in *.c
do for arquivo in `grep -l "matr_aluno" *.sqb`
do
mv $file `echo $file | tr ´A-Z´ ´a-z ´ ` ex +%s/"old_string"/"new_string"/g +wq $arquivo > /dev/null
echo $file done
done
Programação Shell
26
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• while • Sintaxe:
while ((expressão))
do
dir_relatorio=~kikinha/prog
done
while ((1))
do
clear • Comando exit:
echo “ \n* Centro de Computacao* \n”
echo “Selecione a opcao desejada” Serve para sair do while sem ser pela condição definida na
expressão.
echo “ 1- Tabela de Orgaos “
echo “ 2 - Notice “
echo “ 3 - Sai “
Æ
print -n “ “
read RESP
case $RESP in
1) $dir_relatorio/jsi03e_carga;;
2) /usr/local/notice/manager ;;
3) exit ;;
*) print -n “ Opcao Invalida - Tecle <enter> “
read ENTER ;;
esac
done
Programação Shell
27
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
28
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Notas:
TIPO COMANDO
Diretório cd ls pwd Os comandos de Diretórios e Arquivos já foram abordados
mkdir rmdir anteriormente. Eles podem ser utilizados sem restrições numa shell.
Arquivo cat cp csplit Exemplos:
ln mv rm split \rm arquivo_old >& /dev/null
Seleção awk \ls -la
cut /bin/cat arquivo
grep /bin/mv arqvelho arqnovo
/bin/pwd
head /bin/mkdir meudir
line
sed Alguns lembretes:
tail
cd altera o diretório corrente
uniq ls lista o conteúdo do diretório
wc pwd mostra qual é o diretório corrente
Junção cat mkdir cria diretório
mkdir -p cria árvore completa de diretórios
join
rmdir deleta diretório
paste cp copia arquivo
Ordenação sort cp -p copia mantendo as características originais
Transformação sed mv renomeia arquivo
tr rm deleta arquivo
basename mostra o nome do arquivo tirando o path
dd dirname mostra o nome do arquivo colocando o path
Impressão cat diff compara conteúdo de 2 arquivos
º º
echo < 1 arquivo > 2 arquivo
cmp compara dois arquivos
Segurança chmod
Æ
-s ( echo $? traz 1 se diferente )
Leitura $<
touch
Æ
( echo $? traz 0 se igual )
sleep
exit
Programação Shell
29
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
30
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
31
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Sintaxe: Exemplos:
chmod [quem] operação acesso arquivo chmod u=rwx,go= arquivo
ls -la
Opções: -rwx------ 1 lilliam supsof 110 Sep 25 16:33 arquivo
• quem: u(usuário), g(grupo), o(outros), a
(todos)
• operação: +(atribuir), -(remover), =
• acesso: r(read), w(write), x(execução)
• -R : altera a permissão dos arquivos e
diretórios descendetemente.
• Exemplo:
Para tornar um shell script executável, é necessário alterar echo -n “Digite a opcao: “
a permissão do arquivo. read opcao
if (($opcao > 9)) then
echo “Opcao Invalida”
Comando de Leitura fi
• read
Direciona o terminal como stdin, ou seja , captura o
que foi digitado no teclado.
Sintaxe:
read variável
Programação Shell
32
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
33
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• line
Copia uma linha do stdin e grava no stdout.
Sintaxe:
line stdin > stdout
stdin - arquivo
stdout - arquivo ou terminal
Opções:
• -c n : seleciona as n primeiras colunas do stdin
• -n : seleciona as n primeiras linhas do stdin
Opções:
• -n : seleciona as n últimas linhas do stdin
• -f : mostra as linhas que estão sendo
adicionadas no arquivo.
Programação Shell
34
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Sintaxe: Exemplos:
sed [opções] stdin > stdout
1. sed -e “s/café/chá/g” entrada > entrada_alterada
Altera a palavra café para chá em todas as ocorrências (g)
Opções: 2. sed -e “/João/d” entrada > saída
• -e “script” : edita e altera dados
Deleta todas as linhas do stdin que contém a palavra João
3. sed -e “s/devedor//g” entrada
Onde script pode ser: Deleta a palavra
4. sed -f arqcom entrada > arqsaida
“s/string antiga/string nova/g” Executa os comandos que estão no arquivo arqcom.
arqcom: s/shell/Shell/g
“/string pertencente à linha a ser deletada/d”
“s/string a ser deletada//g”
s/Terça/terça/ Æ
altera 1 ocorrência por linha
"s/ *$//g"Æ deleta espaço em branco até o fim OBS: NÃO USAR ASPAS DENTRO DO ARQUIVO
da linha
1d arquivo Æ deleta a 1ª linha do arquivo 5. sed -e “s/cha/café” -e “s/limao/mate/” arq_sala > arqsaida
6. sed -n 5,10p arquivo
imprime da linha 5 até a linha 10 do arquivo.
• -f arquivo : contém os scripts que devem ser 7. nlin=`cat arquivo | wc -l `
executados. Não colocá-los entre aspas duplas. lin=1
while (( $nlin <= $lin))
• -n x,zp arquivo : Seleciona da linha "x" até a linha do
"z" do arquivo especificado. sed -n "$lin"p arquivo
let lin=lin+1
. done
- Não usar stdin como stdout Percorre linha a linha do arquivo
- Pode ser alterado o delimitador do sed de "/ "
para qualquer outro caracter "+", "(", "=", etc
Programação Shell
35
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• find
Seleciona arquivos, a partir do diretório especificado. É
recursivo.
Sintaxe:
find dir opções
Opções:
• -type: especifica o tipo de arquivo (f, d ou l)
• -name : informa o nome do arquivo
• -print: lista os arquivos (incluindo o path) que
satisfazem o critério.
Programação Shell
36
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Exemplos:
Sintaxe: 1. grep “Mar*” arquivo
grep [opções] string stdin
2. grep Maria arq*
Opções:
• -c : conta o nº de vezes que a string aparece. 3. grep -l Maria arquiv*
• -i : ignora uppercase
4. grep -n Maria arquivo
• -l : lista somente o nome dos arquivos que contém
a string procurada. 5. grep $variável arquivo
• -n : numera linhas que contém a string procurada.
• -v : lista todas as linhas do arquivo exceto às que 6. grep -v “Maria Amélia” arquivo
contem a string. 7. grep ”[a-z]” arquivo
• ^letra : lista todas as linhas que iniciem com a
letra ou string. 8. grep ^R arquivo
• -w : lista somente as linhas que tem exatamente a
string passada 9. grep -c Chico arquivo
Programação Shell
37
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Exemplos:
OBS: O comando cut opera em colunas 1. grep -l Maria arqu* | wc -l
2. cat arq l wc -l
• wc
Conta linhas, palavras e caracteres de arquivos.
Sintaxe:
wc [opções] stdin
Opções:
• -c: conta caracteres
• -l : conta linhas
• -w: conta palavras
Programação Shell
38
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Opções:
• - qtd. linhas: especifica o nº de linhas de cada
arquivo de saída. Default 1000 linhas por
arquivo.
• prefixo: prefixo dos stdouts criados. O sufixo é
aa,ab até zz. Default prefixo é x.
Programação Shell
39
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
40
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Sintaxe: Exemplos:
tr ‘caracter velha‘ ‘caracter nova‘ stdin > stdout 1. tr ‘(A-Z)’ ‘(a-z)’ arq1 > arq1min
Sintaxe:
dd if=stdin of=stdout conv=[opções conv]
Opções do conv:
• lcase: converte arquivo para minúsculo
• ucase: converte arquivo para maiúsculo
• ascii: converte ebcdic para ascii
• ebcdic: converte ascii para ebcdic
• ibm: converte ascii to versão ebcdic da IBM
Programação Shell
41
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
42
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• paste Exemplos:
Anexa múltiplos arquivos coluna por coluna.
1. paste -d “/” arq1 arq2
Sintaxe: Aldo:HC/Aldo:enfermeiro
paste [opções] stdin1 stdin2 Bruno:Imecc/Ivo:digitador
Aldo:HC/Bruno:Imecc
• -dCaracter: define delimitador
Aldo:Enfermeiro/João:digitador
• -s : junta linhas subsequentes do arquivo
Programação Shell
43
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
44
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• AWK (Cont.)
• AWK (Cont.)
Programação Shell
46
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Comandos de Junção
• AWK (Cont.)
Tipos de ações:
∗ Output:
Instruções aritméticas:
‘{ print $1 *= $2 } ‘ : o campo 1 é o resultado da
multiplicação do campo1 com o campo2.
Variáveis Especiais:
‘{ print NR, $0 } ‘ : grava em stdout os registros de stdin
numerado.
Notas:
Programação Shell
47
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
48
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• AWK (Cont.)
∗ Begin
BEGIN { FS = “:”
printf (“%20s %5s\n” , “NOME” , “RAMAL”) }
{ printf (“%20s %5s\n”, $2 , $1) }
∗ End
Programação Shell
49
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• AWK (Cont.)
∗ Instruções condicionais:
BEGIN { FS = “:” }
if ($1 != prev {
print “ “
prev = $1
}
∗ Variáveis especiais:
Programação Shell
50
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Date
Algumas opções de date:
♦ hora=`date +%H%M%S`
Notas:
Programação Shell
51
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
52
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
Programação Shell
53
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• vi
• Utilizando o editor vi: ♦ Se o arquivo existir, touch atualiza a data do arquivo, se não
existir touch cria o arquivo
♦ echo, escreve no stdout, no caso no arquivo criado por touch
vi arquivo < comandos_vi >/dev/null ♦ ^[ - representa a tecla ESC (digitar CTRL v CTRL [ )
♦ :x - sai do editor vi e salva o arquivo
Comandos_vi: ♦ vi abre o arquivo e executa os comandos gravados no arquivo
comandos_vi
/FIM ♦ >&! /dev/null - se a execução do vi der algum erro ele joga
fora as mensagens de erro
dd
^[ • ed
:x ♦ editor ed executa os comandos definidos abaixo dele até
encontrar o delimitador, neste exemplo, EOF!
♦ s - substitui
♦ g - global
♦ w - salva as alterações no arquivo aberto por ed
♦ q - sai do editor ed
Programação Shell
54
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuec.unicamp.br)
• /usr/informix/bin/isql
Path do isql
• -s bgql01
Banco de dados que está a visão/relação que
será acessada.
• -qr
Opções do isql que serão executadas. No caso,
q (query) e r(run)
• delvtab53
Arquivo que contém os comandos isql
• \
Continuação da linha comando
• logerror_delete
Se ocorrer algum erro, será gravado neste
arquivo
Programação Shell
55
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuecunicamp.br)
REFERÊNCIAS
Programação Shell
56
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuecunicamp.br)
Programação Shell
57
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuecunicamp.br)
ÍNDICE
Programação Shell
59
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuecunicamp.br)
Programação Shell
60
Centro de Computação - Unicamp
Gerência de Atendimento ao Cliente (e-mail:apoio@ccuecunicamp.br)
• WC ............................................................................................................. 38
• SPLIT .......................................................................................................... 39
• CSPLIT ........................................................................................................ 40
DATE................................................................................................................... 51
Programação Shell
61